Game system and storage medium storing game program

ABSTRACT

A movement vector of an object which appears in a virtual game world is determined in accordance with an operation of a direction instruction section which is provided in a housing. The movement vector is corrected in accordance with a change in an orientation of the housing from a reference orientation or acceleration generated in the housing. Then, movement of the object in the virtual game world is controlled based on the corrected movement vector.

CROSS REFERENCE TO RELATED APPLICATION

The disclosure of Japanese Patent Application Nos. 2006-312255, filed onNov. 17, 2006, and 2007-015532, filed on Jan. 25, 2007, are incorporatedherein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a game system and a storage mediumstoring a game program, and more particularly, to a game system, whichis operated by detecting a change in an orientation of the housing of acontroller or acceleration generated in the housing, and a storagemedium storing a game program.

2. Description of the Background Art

Conventionally, there have been developed various game apparatuses inwhich a player plays a game by operating an input device. For example,Japanese Laid-Open Patent Publication No. 2002-263363 (hereinafter,referred to as Patent Document 1) discloses an apparatus which executesgame processing by using an output from direction instruction inputmeans of a game controller which is operated by the player. In the gameapparatus disclosed in the Patent Document 1, a player character dashesby pressing an R1 button 38 while the movement of the player characterin a virtual game world is controlled by means of a joystick 37 as thedirection instruction input means.

However, in the game apparatus disclosed in the Patent Document 1, sincea content for controlling the movement of the player character which isdetermined by means of the direction instruction input means (thejoystick 37) is corrected by pressing the button (the R1 button 38), theoperation by the player becomes complicated. Also, the game apparatusdisclosed in the Patent Document 1 is not an interface which effectivelymakes the player have a direct feeling of a game input with respect tothe virtual game world. For example, in the game apparatus disclosed inthe Patent Document 1, a movement direction and a movement amount of theplayer character in the virtual game world are inputted by operation bymeans of the direction instruction input means. Thus, the operation isperformed only with the player's fingertips, and the player cannot havea direct feeling of a game input.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide a gamesystem and a storage medium storing a game program for solving at leastone of the above problems, which variedly control movement of a playercharacter by an intuitive and easy operation and makes the player have adirect feeling of a game input.

The present invention has the following features to attain the objectmentioned above. It is noted that reference numerals and step numbers inparentheses are merely provided to facilitate the understanding of thepresent invention in relation to the later-described embodiment, ratherthan limiting the scope of the present invention in any way.

A first aspect of the present invention is a game system (3) comprisinga game controller (7, 76) including a housing (77) which is capable ofbeing held with one hand of a player, a game apparatus (5) connected tothe game controller, and a detection section (701) for detecting anorientation of the housing. The game controller includes at least adirection instruction section (78 a) which is provided in the housingfor performing a direction instruction input. The game apparatusincludes movement vector control means (S43), correction means (S46,S52), and movement control means (S21). The movement vector controlmeans is means for determining a movement vector of an object (PC),which appears in a virtual game world, in accordance with an operationof the direction instruction section. The correction means is means forcorrecting the movement vector, which is determined by the movementvector control means, in accordance with a change in the orientation ofthe housing from a reference orientation based on detection of thedetection section. The movement control means is means for controllingmovement of the object in the virtual game world based on the movementvector which is corrected by the correction means. It is noted that thedirection instruction section can be, for example, a joystick, or aplurality of button keys (a direction is assigned to each of them).

The movement vector control means determines at least a movementdirection of the object in the virtual game world, and in addition, maydetermine a movement amount of the object in the virtual game world. Thecorrection means corrects the movement vector which is determined by themovement vector control means. However, the correction means may correctthe movement direction which is determined by the movement vectorcontrol means, or may correct the movement amount when the movementvector control means also determines the movement amount. In otherwords, the following variations are considered. The movement vectorcontrol means determines the movement direction, and the correctionmeans corrects the movement direction. The movement vector control meansdetermines the movement direction and the movement amount, and thecorrection means corrects the movement direction. The movement vectorcontrol means determines the movement direction and the movement amount,and the correction means corrects the movement amount. The movementvector control means determines the movement direction and the movementamount, and the correction means corrects the movement direction and themovement amount. The virtual game space is three-dimensional, themovement vector control means determines two-dimensional movementcomponents (typically, movement amounts in virtual horizontal twodirections), and the correction means the remaining one-dimensionalmovement component (typically, a movement amount in a virtual verticaldirection).

It is noted that the above “movement amount” may be replaced with “amovement velocity” or “a movement acceleration”.

The detection section includes a predetermined sensor. The correctionmeans determines a change in the orientation of the housing from thereference orientation based on an output value of the sensor, andcorrects the movement vector. Although the correction means determinesthe change in the orientation of the housing from the referenceorientation, more specifically, the correction means determines rotationof the housing about a predetermined axis from the referenceorientation. The predetermined axis may be a predetermined axis of thehousing, or a predetermined axis in the real world. In other words, thecorrection means may determine rotation of the housing about thepredetermined axis of the housing, or rotation of the housing about thepredetermined axis in the real world. In the former case, for example,the correction means may determine rotation (roll) of the housing abouta front-rear axis of the housing (e.g. the longitudinal axis of thehousing), rotation (pitch) of the housing about an left-right axis ofthe housing (e.g. the lateral axis of the housing), and rotation (yaw)of the housing about an up-down axis of the housing (e.g. the verticalaxis of the housing). In the latter case, for example, the correctionmeans may determine rotation of the housing about a horizontal axis or avertical axis. The correction means may calculate a rotation angle ofthe housing from the reference orientation, but this calculation is notessential. For example, as described later in an embodiment, whengravitational acceleration applied in a predetermined axis is detectedby an acceleration sensor, even though the rotation angle is notcalculated, rotation of the housing about the predetermined axis fromthe reference orientation can be determined based on the magnitude andthe direction of the detected acceleration.

Typically, the detection section is a sensor fixed to the housing. Asthe sensor, a sensor (an acceleration sensor, an inclination sensor) foroutputting data in accordance with inclination with respect to thedirection of gravity (hereinafter, referred to merely as “inclination”),a sensor (a magnetic sensor) for outputting data in accordance withorientation, a sensor (a gyro-sensor) for outputting data in accordancewith rotational movement, or the like can be used. The accelerationsensor or the gyro-sensor is capable of multi-axis detection but may becapable of single-axis detection. Alternatively, these sensors may beused in combination for performing further accurate detection. It isnoted that a camera fixed to the housing may be used as the sensor. Inthis case, since an image taken by the camera changes in accordance witha change in the orientation of the housing, the change in theorientation of the housing from the reference orientation can bedetermined by analyzing the taken image.

Depending on a type of the sensor, the detection section may be providedindependently outside the housing. For example, an image of the housingis taken by a camera as the sensor from outside the housing, and animage of the housing in the taken image is analyzed, thereby determininga change in the orientation of the housing from the referenceorientation. Alternatively, a system, in which a unit fixed to thehousing and a unit provided independently outside the housing cooperatewith each other, may be used. For example, a light-emitting unit isprovided independently outside the housing, and an image of light fromthe light-emitting unit is taken by a camera fixed to the housing. Theimage taken by the camera is analyzed, thereby determining a change inthe orientation of the housing from the reference orientation. Anotherexample includes a system, which includes a magnetic field generatingapparatus provided independently outside the housing and a magneticsensor fixed to the housing.

As described above, the correction means may determine rotation of thehousing about a predetermined axis of the housing (a first type of thecorrection means), or may determine rotation of the housing about apredetermined axis in the real world (a second type of the correctionmeans).

(1) The First Type of the Correction Means

The following will describe an example where an acceleration sensor isfixed to the housing. In a simple example, acceleration generated in apredetermined direction of the housing is detected by the accelerationsensor. Using the acceleration detected by the acceleration sensor, achange in a gravitational acceleration component is analyzed, therebydetermining rotation of the housing about an axis perpendicular to thedirection of the gravitational acceleration. For example, accelerationgenerated in the up-down direction of the housing is detected, and achange in a component of the gravitational acceleration in the up-downdirection is analyzed, thereby determining rotation of the housing aboutthe left-right axis of the housing.

In the case of using the acceleration sensor, when the housing rotatesso that inclination of the detection axis of the acceleration sensor isunchanged, for example, when the detection axis of the accelerationsensor corresponds to a rotational axis when the orientation of thehousing is changed, a component of the gravitational acceleration in thedetection axis is unchanged. This makes it hard to determine rotation ofthe housing. However, when the detection axis of the acceleration sensordoes not correspond to the rotational axis when the orientation of thehousing is changed (typically, when the orientation of the housing ischanged so that inclination of the detection axis of the accelerationsensor changes along a vertical plane), an output value concerning thedetection axis changes because of an effect of the gravitationalacceleration, thereby determining rotation of the housing.

In a field of game to which the present invention is applied, it isenough as long as proper game processing is executed when an operationis performed in accordance with an operation manner which ispredetermined by the game developer. Even if the proper game processingis not executed when an operation other than the operation in accordancewith the operation manner is performed, this does not cause a particularproblem. Therefore, if a manner for changing the orientation of thehousing (more specifically, about which axis the housing should berotated) is shown as a proper operation manner in an instruction manualof a game and a game screen, a player performs an operation so as torotate the housing in accordance with the manner. In other words, it isenough as long as the orientation of the housing is determined based ona rotational operation. It is noted that when the player performs anoperation which deviates from the instructed operation, the orientationof the housing cannot be detected accurately. However, if degree of thedeviation between the operations is within an accepted range, roughlyproper processing result is obtained for the game processing. Further,since a game apparatus usually does not require excellent accuracy, thegame apparatus has a practical use even in such a case.

In the case of using the acceleration sensor, the acceleration sensordetects not only the gravitational acceleration applied to the housingbut also acceleration applied in accordance with movement of thehousing. However, it is possible for one skilled in the art to eliminatethe acceleration detected in accordance with the movement. In a simpleexample, when a value of the acceleration detected by the accelerationsensor is larger (or substantially larger) than that of thegravitational acceleration, the value of the detected acceleration isconsidered not to indicate the gravitational acceleration, andprocessing of eliminating the value of the detected acceleration may beexecuted. Or, only when a change in the value of the accelerationdetected by the acceleration sensor is small, the value of the detectedacceleration is considered to indicate the gravitational acceleration,and the value of the detected acceleration may be used for processing oforientation analysis. Further, a high-frequency component of theacceleration detected by the acceleration sensor may be eliminated. Inthe case of a game in which the housing does not need to be movedviolently, the processing of eliminating the acceleration applied inaccordance with the movement of the housing may not be executed. This isbecause even when the acceleration in accordance with the movement ofthe housing is detected, unless the player moves the housing violently,a correct result is obtained to some extent, and thus the game apparatushas a sufficient practical use.

In the case of using the acceleration sensor capable of multi-axisdetection and using values of acceleration generated in multi-axisdirections, a rotational angle of the housing from the referenceorientation is calculated, thereby enabling further detaileddetermination. For example, predetermined calculation processing isexecuted by using values of acceleration in two-axis directions whichare detected by the acceleration sensor, thereby calculating therotation angle of the housing. Typically, calculation processing using atrigonometric function, such as assigning the values of the accelerationin the two-axis directions in an inverse trigonometric function, or thelike, may be executed for calculating the rotation angle of the housing.

Further, in the case of using the acceleration sensor capable ofmulti-axis detection, based on the detection axis direction in whichacceleration changes, which detection axis the housing rotates about canbe determined. In the case of using an acceleration sensor for detectingacceleration in three-axis directions, for example, calculationprocessing is executed by using values of acceleration in first axis andsecond axis directions, thereby determining rotation of the housingabout a third axis direction. Or, calculation processing is executed byusing values of acceleration in the first axis and third axisdirections, thereby determining rotation of the housing about the secondaxis direction.

When the housing is rotated in the real space, a centrifugal force isgenerated in the housing. The centrifugal force may be detected by theacceleration sensor, and used for determining a change in theorientation of the housing. More specifically, for example, whenacceleration generated in a direction of the housing is detected by theacceleration sensor, it can be determined that there is a probabilitythat the housing is rotated about an axis extending in a directionperpendicular to the direction of the housing.

The following will describe the case where a gyro-sensor is fixed to thehousing. In this case, when the orientation of the housing is changed(namely, when the housing is rotated about a predetermined axis of alocal coordinate system), the gyro-sensor directly detects the rotation,and outputs angular velocity data. Based on the outputted angularvelocity data, a change in the orientation of the housing from thereference orientation can be determined. More specifically, a change ina rotation angle of the housing can be determined by using the angularvelocity data. Typically, it is possible determine a change in arotation angle of the housing about the front-rear axis of the housing,a change in a rotation angle of the housing about the left-right axis ofthe housing, and/or a change in a rotation angle of the housing aboutthe up-down axis of the housing. By setting a rotation angle of thehousing in the initial state, it is possible to determine the rotationangle of the housing about the front-rear axis of the housing, therotation angle of the housing about the left-right axis of the housing,and/or the rotation angle of the housing about the up-down axis of thehousing.

(2) The Second Type of the Correction Means

Typically, an acceleration sensor capable of detecting acceleration inthree-axis directions is fixed to the housing. The direction of gravitywith respect to the housing is determined based on a value of theacceleration in each axis direction, thereby determining a rotationangle of the housing about a horizontal axis. Alternatively, forexample, values of acceleration in first-axis and second-axisdirections, which are detected by an acceleration sensor capable ofdetecting acceleration in three-axis directions, are combined tocalculate a combined vector. From a two-dimensional vector having themagnitude of the combined vector and a value of acceleration in athird-axis direction, it is possible to determine a rotation angle ofthe third-axis about the horizontal axis. Alternatively, an orientationsensor is provided in the housing, and thus it is possible to determinea rotation angle about a vertical axis.

It is noted that the correction means may correct the movement vector bya predetermined amount when the amount of a change in the orientation ofthe housing from the reference orientation reaches a threshold value, ormay change an amount, by which the movement vector is corrected, inaccordance with the amount of a change in the orientation of thehousing. More specifically, the amount, by which the movement vector iscorrected, may be increased with an increase of the change in theorientation of the housing.

Further, the correction means may correct the movement vector so as toincrease a movement amount of an object in a predetermined direction ina virtual game world in accordance with rotation of the housing about apredetermined axis. The “predetermined direction” may be a predetermineddirection in a world coordinate system in the virtual game world, apredetermined direction of the object in a local coordinate system, or apredetermined direction in a viewpoint coordinate system. Based on “adirection in which the object moves when a forward direction isinstructed by the direction instruction means”, the predetermineddirection may be determined. Typically, rotation of the housing aboutthe left-right axis of the housing is determined, and a movement amountof the object in the forward direction thereof (a forward directionand/or a backward direction in the local coordinate system) may becorrected based on the determination. More specifically, the movementamount of the object in the forward direction thereof is increased whenthe housing is rotated so as to be inclined forward, and/or the movementamount of the object in the backward direction thereof is increased whenthe housing is rotated so as to be inclined backward. Alternatively,rotation of the housing about the front-rear axis of the housing isdetermined, and the movement amount of the object in the left-rightdirection thereof (a left-right direction in the local coordinatesystem) may be corrected based on the determination. Stillalternatively, rotation of the front-rear axis (or the up-down axis) ofthe housing about the horizontal axis is determined, and the movementamount of the object in the forward direction thereof may be correctedbased on the determination. Still alternatively, rotation of theleft-right axis of the housing about the horizontal axis is determined,and the movement amount of the object in the left-right directionthereof may be corrected based on the determination.

It is noted that the aforementioned “forward direction of the object” is(A) a direction in which the object faces (typically, a Z-axis directionin a local coordinate or a camera coordinate), or (B) a movementdirection of the object (a direction in which the object moves inaccordance with an instruction input of the direction instructionsection in a forward direction). When the object moves in its facingdirection in accordance with the instruction input of the directioninstruction section in the forward direction, the above (A) correspondsto the above (B).

The movement vector control means determines a movement vector formoving the object in “the forward direction of the object” in accordancewith the instruction input of the direction instruction section in theforward direction, determines a movement vector for moving the object ina direction opposite to the “forward direction of the object” inaccordance with an instruction input of the direction instructionsection in a backward direction, and determines a movement vector formoving the object in a left-right direction perpendicular to the“forward direction of the object” in accordance with an instructioninput of the direction instruction section in a left-right direction.The “left-right direction” may be defined as a left-right direction inthe local coordinate system or a left-right direction in the worldcoordinate system.

The “forward direction of the object” may be a fixed direction in theworld coordinate system or may be changed in accordance with aninstruction input of the direction instruction section. In the lattercase, when the movement vector of the object is determined, thedirection of the movement vector is typically set to a new forwarddirection.

Further, the correction means may determine rotation of the housingabout an axis, or rotation of the housing about a plurality of axes. Inthe latter case, “a predetermined direction in the virtual game world”is set for each axis. In other words, the correction means corrects amovement amount of the object in a direction A in the virtual game worldin accordance with rotation of the housing about an axis A, and correctsa movement amount of the object in a direction B in the virtual gameworld in accordance with rotation of the housing about an axis B (theaxis A is different from the axis B, and the direction A is differentfrom the direction B). Preferably, the axis A is set perpendicular tothe axis B, and the direction A is set perpendicular to the direction B.It is noted that rotation of the housing about three or more axes may bedetermined, namely, the correction means may also correct a movementamount of the object in a direction C in accordance with rotation of thehousing about an axis C.

In a second aspect based on the first aspect, the correction meanscorrects the movement vector so as to increase a movement amount of theobject in a predetermined direction in the virtual game world inaccordance with rotation of the housing about a predetermined axis.

In a third aspect based on the second aspect, the correction meanscorrects the movement vector so as to increase a movement amount of theobject in a forward direction thereof in the virtual game world inaccordance with rotation of the housing about a left-right axis of thehousing.

In a fourth aspect based on the second aspect, the correction meanscorrects the movement vector so as to increase a movement amount of theobject in a left-right direction thereof in the virtual game world inaccordance with rotation of the housing about a front-rear axis of thehousing.

In a fifth aspect based on the first aspect, the correction meanscorrects the movement vector so as to increase a movement amount of theobject in a predetermined direction in the virtual game world inaccordance with rotation of a predetermined axis of the housing about anaxis perpendicular to the predetermined axis.

In a sixth aspect based on the first aspect, the correction meanscorrects the movement vector so as to increase a movement amount of theobject in a first direction in the virtual game world in accordance withrotation of a first axis of the housing about an axis perpendicular tothe first axis. The correction means corrects the movement vector so asto increase a movement amount of the object in a second direction in thevirtual game world, which is different from the first direction, inaccordance with rotation of a second axis of the housing, which isdifferent from the first axis, about an axis perpendicular to the secondaxis.

In a seventh aspect based on the first aspect, the direction instructionsection includes at least a stick (78 a) which is inclined in apredetermined direction of the housing thereby to perform an input. Themovement vector control means determines the movement vector so as tomove the object in a first direction in the virtual game world when thestick is inclined in the predetermined direction. The correction meanscorrects the movement vector so as to increase a movement amount of theobject in the first direction in the virtual game world in accordancewith rotation of the housing so as to be inclined in the predetermineddirection.

In an eighth aspect based on the first aspect, the direction instructionsection includes at least a stick which is inclined so as to rotateabout a predetermined axis of the housing thereby to perform an input.The movement vector control means determines the movement vector so asto move the object in a first direction in the virtual game world whenthe stick is inclined in a direction to rotate about the predeterminedaxis. The correction means corrects the movement vector so as toincrease a movement amount of the object in the first direction in thevirtual game world in accordance with rotation of the housing about thepredetermined axis.

In a ninth aspect based on the first aspect, the direction instructionsection includes at least a stick which is inclined in a predetermineddirection of the housing or a direction perpendicular to thepredetermined direction thereby to perform an input. The movement vectorcontrol means determines the movement vector so as to move the object ina first direction in the virtual game world when the stick is inclinedin the predetermined direction, and determines the movement vector so asto the object in a second direction perpendicular to the first directionin the virtual game world when the stick is inclined in theperpendicular direction. The correction means corrects the movementvector so as to increase a movement amount of the object in the firstdirection in the virtual game world in accordance with rotation of thehousing so as to be inclined in the predetermined direction, andcorrects the movement vector so as to increase a movement amount of theobject in the second direction in the virtual game world in accordancewith rotation of the housing so as to be inclined in the perpendiculardirection.

In a tenth aspect based on the first aspect, the direction instructionsection includes at least a stick which is inclined in a forward,backward, leftward, or rightward direction of the housing thereby toperform an instruction input for a forward, backward, leftward, orrightward direction. The movement vector control means determines themovement vector so as to move the object in the reference direction bychanging a reference direction, in which the object moves in the virtualgame world, in accordance with a direction instructed by the directioninstruction section when the stick is inclined in the forward directionof the housing. The correction means corrects the movement vector so asto increase a movement amount of the object in the reference directionin the virtual game world in accordance with inclination of the housingin the forward direction.

An eleventh aspect is a game system comprising a game controlleroperated by a player and a game apparatus connected to the gamecontroller. The game controller includes a housing, a directioninstruction section, and movement detection means (761). The housing isformed in such a shape and size that the housing is held at a sidecircumference thereof with one hand of the player. The directioninstruction section is provided in such a position that when the playerholds the housing with one hand, the direction instruction section iscapable of being operated with a thumb of the one hand for performing aninstruction input in a forward, backward, leftward, or rightwarddirection of the housing. The movement detection means is means fordetecting movement of the housing. The game apparatus includes movementdirection control means, correction means, and movement control means.The movement direction control means is means for determining a forwarddirection of an object, which appears in a virtual game world, as adirection of a movement vector of the object when the instruction inputin the forward direction of the housing is performed by the directioninstruction section, determining a backward direction of the object inthe virtual game world as the direction of the movement vector when theinstruction input in the backward direction of the housing is performedby the direction instruction section, and determining a leftward orrightward direction of the object in the virtual game world as thedirection of the movement vector when the instruction input in theleftward or rightward direction of the housing is performed by thedirection instruction section. The correction means is means forcorrecting the movement vector so as to increase a movement amount ofthe object in the forward direction in the virtual game world whenrotation of the housing in the forward direction of the housing isindicated based on detection of the movement detection means. Themovement control means is means for moving the object in the virtualgame world based on the movement vector which is corrected by thecorrection means.

It is noted that the movement detection means can be an accelerationsensor provided in the housing, a gyro-sensor provided in the housing,an element for detecting movement by analyzing an image taken by imagingmeans provided in the housing (including, for example, a system realizedby an imaging information calculation section 74 and a marker 8 whichare described later), an inclination sensor provided in the housing fordetecting inclination, or the like. In the case of using thegyro-sensor, special processing is required as described later.

Specifically, a palm of one hand is brought into contact with a sidesurface (one of a right side surface and a left side surface) of thehousing, and at least one of fingers (an index finger, a middle finger,a ring finger, and a little finger) of the hand (preferably, at leasttwo of them or including at least the middle finger) is brought intocontact with the other side surface (the other of the right side surfaceand the left side surface) of the housing, whereby the housing is held.In this held state, the direction instruction section is located withinthe reach of a thumb.

In a twelfth aspect based on the second aspect, the movement vectorcontrol means determines a direction of the movement vector with aforward direction of the object in the virtual game world as a referencein accordance with a direction instructed by the direction instructionsection. The game apparatus further includes object direction controlmeans for setting the direction of the movement vector, which isdetermined by the movement vector control means and corrected by thecorrection means, as a new forward direction of the object, and changinga direction of the object in the virtual game world based on the newforward direction.

A thirteenth aspect is a game system comprising a game controlleroperated by a player and a game apparatus connected to the gamecontroller. The game controller includes at least a housing,acceleration detection means, and a direction instruction section. Thehousing is capable of being held with one hand of the player. Theacceleration detection means is means for detecting accelerationgenerated in the housing. The direction instruction section is providedin the housing for performing a direction instruction input. The gameapparatus includes movement vector control means, correction means, andmovement control means. The movement vector control means is means fordetermining a movement vector of an object, which appears in a virtualgame world, in accordance with an operation of the direction instructionsection. The correction means is means for correcting the movementvector, which is determined by the movement vector control means, inaccordance with the acceleration generated in the housing based ondetection of the acceleration detection means. The movement controlmeans is means for controlling movement of the object in the virtualgame world based on the movement vector which is corrected by thecorrection means.

In a fourteenth aspect based on the thirteenth aspect, the correctionmeans corrects the movement vector so as to increase a movement amountof the object in a predetermined direction in the virtual game world inaccordance with acceleration generated in a predetermined axialdirection of the housing.

In a fifteenth aspect based on the fourteenth aspect, the correctionmeans corrects the movement vector so as to increase a movement amountof the object in a forward direction thereof in the virtual game worldin accordance with acceleration generated in a forward direction of thehousing.

In a sixteenth aspect based on the fourteenth aspect, the correctionmeans corrects the movement vector so as to increase a movement amountof the object in a leftward or rightward direction thereof in thevirtual game world in accordance with acceleration generated in aleftward or rightward direction of the housing.

In a seventeenth aspect based on the thirteenth aspect, the correctionmeans corrects the movement vector so as to increase a movement amountof the object in a first direction in the virtual game world inaccordance with acceleration generated in a first direction of thehousing. The correction means corrects the movement vector so as toincrease a movement amount of the object in a second direction in thevirtual game world, which is different from the first direction in thevirtual game world, in accordance with acceleration generated in asecond direction of the housing which is different from the firstdirection of the housing.

In an eighteenth aspect based on the thirteenth aspect, the directioninstruction section includes at least a stick which is inclined in apredetermined direction of the housing thereby to perform an input. Themovement vector control means determines the movement vector so as tomove the object in a first direction in the virtual game world when thestick is inclined in the predetermined direction. The correction meanscorrects the movement vector so as to increase a movement amount of theobject in the first direction in the virtual game world in accordancewith acceleration generated in the predetermined direction of thehousing.

In a nineteenth aspect based on the thirteenth aspect, the directioninstruction section includes at least a stick which is inclined in apredetermined direction of the housing or a direction perpendicular tothe predetermined direction thereby to perform an input. The movementvector control means determines the movement vector so as to move theobject in a first direction in the virtual game world when the stick isinclined in the predetermined direction, and determines the movementvector so as to move the object in a second direction perpendicular tothe first direction in the virtual game world when the stick is inclinedin the perpendicular direction. The correction means corrects themovement vector so as to increase a movement amount of the object in thefirst direction in the virtual game world in accordance withacceleration generated in the predetermined direction of the housing,and corrects the movement vector so as to increase a movement amount ofthe object in the second direction in the virtual game world inaccordance with acceleration generated in the perpendicular direction ofthe housing.

In a twentieth aspect based on the thirteenth aspect, the directioninstruction section includes at least a stick which is inclined in aforward, backward, leftward, or rightward direction of the housingthereby to perform an instruction input for a forward, backward,leftward, or rightward direction. The movement vector control meansdetermines the movement vector so as to move the object in the referencedirection by changing a reference direction, in which the object movesin the virtual game world, in accordance with a direction instructed bythe direction instruction section when the stick is inclined in theforward direction of the housing. The correction means corrects themovement vector so as to increase a movement amount of the object in asecond direction in the virtual game world, which is different from thefirst direction in the virtual game world, in accordance withacceleration generated in a second direction of the housing which isdifferent from the first direction of the housing.

A twenty-first aspect is a game system comprising a game controlleroperated by a player and a game apparatus connected to the gamecontroller. The game controller includes a housing, a directioninstruction section, and acceleration detection means. The housing isformed in such a shape and size that the housing is held at a sidecircumference thereof with one hand of the player. The directioninstruction section is provided in such a position that when the playerholds the housing with one hand, the direction instruction section iscapable of being operated with a thumb of the one hand for performing aninstruction input in a forward, backward, leftward, or rightwarddirection of the housing. The acceleration detection means for detectingacceleration generated at least in the forward direction of the housing.The game apparatus includes movement vector control means, correctionmeans, and movement control means. The movement vector control means ismeans for determining a forward direction of an object, which appears ina virtual game world, as a direction of a movement vector of the objectwhen the instruction input in the forward direction of the housing isperformed by the direction instruction section, determining a backwarddirection of the object in the virtual game world as the direction ofthe movement vector when the instruction input in the backward directionof the housing is performed by the direction instruction section, anddetermining a leftward or rightward direction of the object in thevirtual game world as the direction of the movement vector when theinstruction input in the leftward or rightward direction of the housingis performed by the direction instruction section. The correction meansis means for correcting the movement vector so as to increase a movementamount of the object in the forward direction in the virtual game worldbased on detection of the acceleration detection means when theacceleration is generated in the forward direction of the housing. Themovement control means is means for moving the object in the virtualgame world based on the movement vector which is corrected by thecorrection means.

In a twenty-second aspect based on the thirteenth aspect, the movementvector control means determines a direction of the movement vector witha forward direction of the object in the virtual game world as areference in accordance with a direction instructed by directioninstruction section. The game apparatus further includes objectdirection control means for setting the direction of the movementvector, which is determined by the movement vector control means andcorrected by the correction means, as a new forward direction of theobject, and changing a direction of the object in the virtual game worldbased on the new forward direction.

A twenty-third aspect is a game system comprising a game controllerincluding a housing which is capable of being held with one hand of aplayer, a game apparatus connected to the game controller, and adetection section for detecting an orientation of the housing. The gamecontroller includes at least a direction instruction section which isprovided in the housing for performing a direction instruction input.The game apparatus includes movement direction determination means,movement amount determination means, and movement control means. Themovement direction determination means is means for determining amovement direction of an object, which appears in a virtual game world,in accordance with an operation of the direction instruction section.The movement amount determination means is means for determining amovement amount of the object in accordance with a change in theorientation of the housing from a reference orientation based ondetection of the detection section. The movement control means is meansfor controlling movement of the object in the virtual game world basedon the movement direction which is determined by the movement directiondetermination means and the movement amount which is determined by themovement amount determination means.

A twenty-fourth aspect is a game system comprising a game controlleroperated by a player and a game apparatus connected to the gamecontroller. The game controller includes at least a housing,acceleration detection means, and a direction instruction section. Thehousing is capable of being held with one hand of the player. Theacceleration detection means is means for detecting accelerationgenerated in the housing. The direction instruction section is providedin the housing for performing a direction instruction input. The gameapparatus includes movement direction determination means, movementamount determination means, and movement control means. The movementdirection determination means is means for determining a movementdirection of an object, which appears in a virtual game world, inaccordance with an operation of the direction instruction section. Themovement amount determination means is means for determining a movementamount of the object in accordance with the acceleration generated inthe housing based on detection of the acceleration detection means. Themovement control means is means for controlling movement of the objectin the virtual game world based on the movement direction which isdetermined by the movement direction determination means and themovement amount which is determined by the movement amount determinationmeans.

A twenty-fifth aspect is a game system comprising a game controllerincluding a housing which is capable of being held with one hand of aplayer, a game apparatus connected to the game controller, and adetection section for detecting an orientation of the housing. The gamecontroller includes at least a direction instruction section which isprovided in the housing for performing a direction instruction input.The game apparatus includes position determination means (S43, S171),displacement determination means (S172, S173), and movement controlmeans (S21). The position determination means is means for determining aposition of an object, which appears in a virtual game world, inaccordance with an operation of the direction instruction section. Thedisplacement determination means is means for determining a displacementamount of the object in the virtual game world in accordance with achange in the orientation of the housing from a reference orientationbased on detection of the detection section. The movement control meansis means for changing the position of the object, which is determined bythe position determination means, by the displacement amount which isdetermined by the displacement determination means, and controllingmovement of the object.

In a twenty-sixth aspect based on the twenty-fifth aspect, thedisplacement determination means determines a displacement amount of theobject in a predetermined direction in the virtual game world inaccordance with rotation of the housing about a predetermined axis.

In a twenty-seventh aspect based on the twenty-fifth aspect, thedisplacement determination means determines the displacement amount soas to displace the object in a forward direction of the object in thevirtual game world in accordance with rotation of the housing about aleft-right axis of the housing.

In a twenty-eighth aspect based on the twenty-fifth aspect, thedisplacement determination means determines the displacement amount soas to displace the object in a leftward or rightward direction of theobject in the virtual game world in accordance with rotation of thehousing about a front-rear axis of the housing.

In a twenty-ninth aspect based on the twenty-fifth aspect, thedisplacement determination means determines the displacement amount soas to displace the object in a predetermined direction in the virtualgame world in accordance with rotation of a predetermined axis of thehousing about an axis perpendicular to the predetermined axis.

In a thirtieth aspect based on the twenty-fifth aspect, the displacementdetermination means determines the displacement amount so as to displacethe object in a first direction in the virtual game world in accordancewith rotation of a first axis of the housing about an axis perpendicularto the first axis. The displacement determination means determines thedisplacement so as to displace the object in a second direction in thevirtual game world, which is different from the first direction, inaccordance with rotation of a second axis of the housing, which isdifferent from the first axis, about an axis perpendicular to the secondaxis.

In a thirty-first aspect based on the twenty-fifth aspect, the directioninstruction section includes at least a stick which is inclined in apredetermined direction of the housing thereby to perform an input. Theposition determination means moves the position of the object in a firstdirection in the virtual game world to determine a new position of theobject when the stick is inclined in the predetermined direction. Thedisplacement determination means determines the displacement amount soas to displace the object in the first direction in the virtual gameworld in accordance with rotation of the housing so as to be inclined inthe predetermined direction.

In a thirty-second aspect based on the twenty-fifth aspect, thedirection instruction section includes at least a stick which isinclined so as to rotate about a predetermined axis of the housingthereby to perform an input. The position determination means moves theposition of the object in a first direction in the virtual game world todetermine a new position of the object when the stick is inclined in adirection to rotate about the predetermined axis. The displacementdetermination means determines the displacement amount so as to displacethe object in the first direction in the virtual game world inaccordance with rotation of the housing about the predetermined axis.

In a thirty-third aspect based on the twenty-fifth aspect, the directioninstruction section includes at least a stick which is inclined in apredetermined direction of the housing or a direction perpendicular tothe predetermined direction thereby to perform an input. The positiondetermination means moves the position of the object in a firstdirection in the virtual game world to determine a new position of theobject when the stick is inclined in the predetermined direction, andmoves the position of the object in a second direction perpendicular tothe first direction in the virtual game world to determine a newposition of the object when the stick is inclined in the perpendiculardirection. The displacement determination means determines thedisplacement amount so as to displace the object in the first directionin accordance with rotation of the housing so as to be inclined in thepredetermined direction, and determines the displacement amount so as todisplace the object in the second direction in accordance with rotationof the housing so as to be inclined in the perpendicular direction.

In a thirty-fourth aspect based on the twenty-fifth aspect, thedirection instruction section includes at least a stick which isinclined in a forward, backward, leftward, or rightward direction of thehousing thereby to perform an instruction input for a forward, backward,leftward, or rightward direction. The position determination means movesthe position of the object in a forward, backward, leftward, orrightward direction in the virtual game world to determine a newposition of the object in accordance with a direction instructed by thedirection instruction section when the stick is inclined in the forward,backward, leftward, or rightward direction of the housing. Thedisplacement determination means determines the displacement amount soas to displace the object in a leftward or rightward direction of theobject in the virtual game world in accordance with inclination of thehousing in the leftward or rightward direction.

A thirty-fifth aspect is a game system comprising a game controlleroperated by a player and a game apparatus connected to the gamecontroller. The game controller includes at least a housing,acceleration detection means, and a direction instruction section. Thehousing is capable of being held with one hand of the player. Theacceleration detection means is means for detecting accelerationgenerated in the housing. The direction instruction section is providedin the housing for performing a direction instruction input. The gameapparatus includes position determination means, displacementdetermination means, and movement control means. The positiondetermination means is means for determining a position of an object,which appears in a virtual game world, in accordance with an operationof the direction instruction section. The displacement determinationmeans is means for determining a displacement amount of the object inthe virtual game world in accordance with the acceleration generated inthe housing based on detection of the acceleration detection means. Themovement control means is means for changing the position of the object,which is determined by the position determination means, by thedisplacement amount which is determined by the displacementdetermination means, and moving the object.

In a thirty-sixth aspect based on the thirty-fifth aspect, thedisplacement determination means determines the displacement amount soas to displace the object in a forward or backward direction of theobject in the virtual game world in accordance with accelerationgenerated in a forward or backward direction of the housing.

In a thirty-seventh aspect based on the thirty-fifth aspect, thedisplacement determination means determines the displacement amount soas to displace the object in a first direction in the virtual game worldin accordance with acceleration generated in a first direction of thehousing. The displacement determination means determines thedisplacement amount so as to displace the object in a second directionin the virtual game world, which is different from the first directionin the virtual game world, in accordance with acceleration generated ina second direction of the housing which is different from the firstdirection of the housing.

In a thirty-eighth aspect based on the thirty-fifth aspect, thedirection instruction section includes at least a stick which isinclined in a predetermined direction of the housing thereby to performan input. The position determination means moves the position of theobject in a first direction in the virtual game world to determine a newposition of the object when the stick is inclined in the predetermineddirection. The displacement determination means determines thedisplacement amount so as to displace the object in the first directionin the virtual game world in accordance with acceleration generated inthe predetermined direction of the housing.

In a thirty-ninth aspect based on the thirty-fifth aspect, the directioninstruction section includes at least a stick which is inclined in apredetermined direction of the housing or a direction perpendicular tothe predetermined direction thereby to perform an input. The positiondetermination means moves the position of the object in a firstdirection in the virtual game world to determine a new position of theobject when the stick is inclined in the predetermined direction, andmoves the position of the object in a second direction perpendicular tothe first direction when the stick is inclined in the perpendiculardirection. The displacement determination means determines thedisplacement amount so as to displace the object in the first directionin the virtual game world in accordance with acceleration generated inthe predetermined direction of the housing, and determines thedisplacement amount so as to displace the object in the second directionin the virtual game world in accordance with acceleration generated inthe perpendicular direction of the housing.

In a fortieth aspect based on the thirty-fifth aspect, the directioninstruction section includes at least a stick which is inclined in aforward, backward, leftward, or rightward direction of the housingthereby to perform an instruction input for a forward, backward,leftward, or rightward direction. The position determination means movesthe position of the object in a forward, backward, leftward, orrightward direction in the virtual game world to determine a newposition of the object in accordance with a direction instructed bydirection instruction section when the stick is inclined in the forward,backward, leftward, or rightward direction of the housing. Thedisplacement determination means determines the displacement amount soas to displace the object in a leftward or rightward direction of theobject in the virtual game world in accordance with accelerationgenerated in a leftward or rightward direction of the housing.

In a forty-first aspect based on the twenty-fifth aspect, the positiondetermination means determines a new position of the object with aforward direction of the object in the virtual game world as a referencein accordance with a direction instructed by the direction instructionsection. The game apparatus further includes object direction controlmeans for setting a direction in the virtual game world, in which theposition of the object is moved by the position determination means, asa new forward direction of the object, and changing a direction of theobject in the virtual game world based on the new forward direction.

In a forty-second aspect based on the sixth aspect, the first axis andthe second axis are perpendicular to each other. The first direction andthe second direction are perpendicular to each other in the virtual gameworld.

In a forty-third aspect based on the seventeenth aspect, the first axisand the second axis of the housing are perpendicular to each other. Thefirst direction and the second direction are perpendicular to each otherin the virtual game world.

In a forty-fourth aspect based on the first aspect, the housing isformed in such a shape and size that the housing is held at a sidecircumference thereof with one hand of the player.

In a forty-fifth aspect based on the forty-fourth aspect, the directioninstruction section is provided in the housing in such a position thatwhen the player holds the housing at the side circumference with onehand, the direction instruction section is capable of being operatedwith a thumb of the one hand.

A forty-sixth aspect is a computer-readable storage medium storing agame program which is executed by a computer of a game apparatus in agame system comprising: a game controller which includes a housingcapable of being held with one hand of a player and a directioninstruction section provided in the housing for performing a directioninstruction input; the game apparatus connected to the game controller;and a detection section for detecting an orientation of the housing. Thegame program causes the computer to function as movement vector controlmeans, correction means, and movement control means. The movement vectorcontrol means is means for determining a movement vector of an object,which appears in a virtual game world, in accordance with an operationof the direction instruction section. The correction means is means forcorrecting the movement vector, which is determined by the movementvector control means, in accordance with a change in the orientation ofthe housing from a reference orientation based on detection of thedetection section. The movement control means is means for controllingmovement of the object in the virtual game world based on the movementvector which is corrected by the correction means.

A forty-seventh aspect is a computer-readable storage medium storing agame program which is executed by a computer of a game apparatusconnected to a game controller which includes: a housing formed in sucha shape and size that the housing is held at a side circumferencethereof with one hand of a player; a direction instruction sectionprovided in such a position that when the player holds the housing withone hand, the direction instruction section is capable of being operatedwith a thumb of the one hand for performing an instruction input in aforward, backward, leftward, or rightward direction of the housing; andmovement detection means for detecting movement of the housing. The gameprogram causes the computer to function as movement direction controlmeans, correction means, and movement control means. The movementdirection control means is means for determining a forward direction ofan object, which appears in a virtual game world, as a direction of amovement vector of the object when the instruction input in the forwarddirection of the housing is performed by the direction instructionsection, determining a backward direction of the object in the virtualgame world as the direction of the movement vector when the instructioninput in the backward direction of the housing is performed by thedirection instruction section, and determining a leftward or rightwarddirection of the object in the virtual game world as the direction ofthe movement vector when the instruction input in the leftward orrightward direction of the housing is performed by the directioninstruction section. The correction means is means for correcting themovement vector so as to increase a movement amount of the object in theforward direction in the virtual game world when rotation of the housingin the forward direction of the housing is indicated based on detectionof the movement detection means. The movement control means is means formoving the object in the virtual game world based on the movement vectorwhich is corrected by the correction means.

A forty-eighth aspect is a computer-readable storage medium storing agame program which is executed by a computer of a game apparatusconnected to a game controller which includes: a housing capable ofbeing held with one hand of a player; acceleration detection means fordetecting acceleration generated in the housing; and a directioninstruction section provided in the housing for performing a directioninstruction input. The game program causes the computer to function asmovement vector control means, correction means, and movement controlmeans. The movement vector control means is means for determining amovement vector of an object, which appears in a virtual game world, inaccordance with an operation of the direction instruction section. Thecorrection means is means for correcting the movement vector, which isdetermined by the movement vector control means, in accordance with theacceleration generated in the housing based on detection of theacceleration detection means. The movement control means is means forcontrolling movement of the object in the virtual game world based onthe movement vector which is corrected by the correction means.

A forty-ninth aspect is a computer-readable storage medium storing agame program which is executed by a computer of a game apparatusconnected to a game controller which includes: a housing formed in sucha shape and size that the housing is held at a side circumferencethereof with one hand of a player; a direction instruction sectionprovided in such a position that when the player holds the housing withone hand, the direction instruction section is capable of being operatedwith a thumb of the one hand for performing an instruction input in aforward, backward, leftward, or rightward direction of the housing; andacceleration detection means for detecting acceleration generated atleast in the forward direction of the housing. The game program causesthe computer to function as movement vector control means, correctionmeans, and movement control means. The movement vector control means ismeans for determining a forward direction of an object, which appears ina virtual game world, as a direction of a movement vector of the objectwhen the instruction input in the forward direction of the housing isperformed by the direction instruction section, determining a backwarddirection of the object in the virtual game world as the direction ofthe movement vector when the instruction input in the backward directionof the housing is performed by the direction instruction section, anddetermining a leftward or rightward direction of the object in thevirtual game world as the direction of the movement vector when theinstruction input in the leftward or rightward direction of the housingis performed by the direction instruction section. The correction meansis means for correcting the movement vector so as to increase a movementamount of the object in the forward direction in the virtual game worldbased on detection of the acceleration detection means when theacceleration is generated in the forward direction of the housing. Themovement control means is means for moving the object in the virtualgame world based on the movement vector which is corrected by thecorrection means.

A fiftieth aspect is a computer-readable storage medium storing a gameprogram which is executed by a computer of a game apparatus in a gamesystem comprising: a game controller which includes a housing capable ofbeing held with one hand of a player and a direction instruction sectionprovided in the housing for performing a direction instruction input;the game apparatus connected to the game controller; and a detectionsection for detecting an orientation of the housing. The game programcauses the computer to function as movement direction determinationmeans, movement amount determination means, and movement control means.The movement direction determination means is means for determining amovement direction of an object, which appears in a virtual game world,in accordance with an operation of the direction instruction section.The movement amount determination means is means for determining amovement amount of the object in accordance with a change in theorientation of the housing from a reference orientation based ondetection of the detection section. The movement control means is meansfor controlling movement of the object in the virtual game world basedon the movement direction which is determined by the movement directiondetermination means and the movement amount which is determined by themovement amount determination means.

A fifty-first aspect is a computer-readable storage medium storing agame program which is executed by a computer of a game apparatusconnected to a game controller which includes: a housing capable ofbeing held with one hand of a player; acceleration detection means fordetecting acceleration generated in the housing; and a directioninstruction section provided in the housing for performing a directioninstruction input. The game program causes the computer to function asmovement direction determination means, movement amount determinationmeans, and movement control means. The movement direction determinationmeans is means for determining a movement direction of an object, whichappears in a virtual game world, in accordance with an operation of thedirection instruction section. The movement amount determination meansis means for determining a movement amount of the object in accordancewith the acceleration generated in the housing based on detection of theacceleration detection means. The movement control means is means forcontrolling movement of the object in the virtual game world based onthe movement direction which is determined by the movement directiondetermination means and the movement amount which is determined by themovement amount determination means.

A fifty-second aspect is a computer-readable storage medium storing agame program which is executed by a computer of a game apparatus in agame system comprising: a game controller which includes a housingcapable of being held with one hand of a player and a directioninstruction section provided in the housing for performing a directioninstruction input; the game apparatus connected to the game controller;and a detection section for detecting an orientation of the housing. Thegame program causes the computer to function as position determinationmeans, displacement determination means, and movement control means. Theposition determination means is means for determining a position of anobject, which appears in a virtual game world, in accordance with anoperation of the direction instruction section. The displacementdetermination means is means for determining a displacement amount ofthe object in the virtual game world in accordance with a change in theorientation of the housing from a reference orientation based ondetection of the detection section. The movement control means is meansfor changing the position of the object, which is determined by theposition determination means, by the displacement amount which isdetermined by the displacement determination means, and controllingmovement of the object.

A fifty-third aspect is a computer-readable storage medium storing agame program which is executed by a computer of a game apparatusconnected to a game controller which includes: a housing capable ofbeing held with one hand of a player; acceleration detection means fordetecting acceleration generated in the housing; and a directioninstruction section provided in the housing for performing a directioninstruction input. The game program causes the computer to function asposition determination means, displacement determination means, andmovement control means. The position determination means is means fordetermining a position of an object, which appears in a virtual gameworld, in accordance with an operation of the direction instructionsection. The displacement determination means is means for determining adisplacement amount of the object in the virtual game world inaccordance with the acceleration generated in the housing based ondetection of the acceleration detection means. The movement controlmeans is means for changing the position of the object, which isdetermined by the position determination means, by the displacementamount which is determined by the displacement determination means, andmoving the object.

According to the first aspect, since a content (a movement vector) forcontrolling movement of the object which is determined by an operationof the direction instruction section is corrected based on theorientation of the housing provided with the direction instructionsection, operation by the player is made easy. Therefore, an input formoving the object such as a player character and the like provides adirect feeling, and the movement of the object can be variedlycontrolled by an intuitive and easy operation.

According to the second to sixth aspects, in accordance with a change inthe orientation of the housing so that the housing is rotated, it ispossible to control the movement of the object so as to increase themovement amount in a direction in the virtual game world in accordancewith the rotation axis.

According to the seventh to eleventh aspects, an inclination directionof a stick operation of the direction instruction section isappropriately associated with a direction of the change in theorientation of the housing, and thus the movement of the object can bevariedly controlled by a further intuitive and easy operation.

According to the twelfth aspect, the movement of the object can becontrolled so that the forward direction of the object is changed to thedirection of the set movement vector.

According to the thirteenth to twenty-second aspects, since a content (amovement vector) for controlling movement of the object which isdetermined by an operation of the direction instruction section iscorrected by using the acceleration generated in the housing which isprovided with the direction instruction section, operation by the playeris made easy. Therefore, the movement of the object, such as a playercharacter and the like, can be variedly controlled by an intuitive andeasy operation, and the same advantageous effects as those of the abovegame system are obtained.

According to the twenty-third aspect, it is possible to provide a game,in which the movement direction of the object is determined by anoperation of the direction instruction section, and the movement amountof the object is determined in accordance with the orientation of thehousing which is provided with the direction instruction section,thereby making operation by the player easy. The game effectively makesthe player have a direct feeling of a game input.

According to the twenty-fourth aspect, it is possible to provide a game,in which the movement direction of the object is determined by anoperation of the direction instruction section, and the movement amountof the object is determined in accordance with the accelerationgenerated in the housing which is provided with the directioninstruction section, thereby making operation by the player easy. Thegame effectively makes the player have a direct feeling of a game input.

According to the twenty-fifth to thirty-fourth aspects, it is possibleto provide a game, in which a basic position of the object is determinedby an operation of the direction instruction section and the object isdisplaced from the basic position based on the orientation of thehousing which is provided with the direction instruction section.Therefore, the movement of the object, such as a player character andthe like, can be variedly controlled by an intuitive and easy operation,and operability is obtained without an uncomfortable feeling. Further,the same advantageous effects as those of the above game system areobtained.

According to the thirty-fourth to fortieth aspects, it is possible toprovide a game, in which a basic position of the object is determined byan operation of the direction instruction section and the object isdisplaced from the basic position based on the acceleration generated inthe housing which is provided with the direction instruction section.Therefore, the movement of the object, such as a player character andthe like, can be variedly controlled by an intuitive and easy operation,and operability is obtained without an uncomfortable feeling. Further,the same advantageous effects as those of the above game system areobtained.

According to the forty-first aspect, the movement of the object can becontrolled so that the forward direction of the object is changed to adirection in which the object moves to the basic position.

According to the forty-second and forty-third aspects, the two axes fordetermining the orientation of the housing are perpendicular to eachother, and the two axes to be reflected in the virtual game world inaccordance with the orientation are perpendicular to each there, so thatthese axes are caused to correspond to each other for controlling themovement of the object. Thus, a virtual plane set in the real space iscaused to correspond to a virtual plane in the virtual game world, andthe movement of the object can be controlled. Thus, a game input can beperformed with a further direct feeling.

According to the forty-fourth aspect, the player can hold the housing soas to wrap one hand around it, and can play the game while moving thehand.

According to the forty-fifth aspect, the player can hold the housing soas to wrap one hand around it, and can perform an input with the thumbof the hand while moving the hand freely similarly as in the case of theconventional controller.

According to the storage medium storing the game program of the presentinvention, the same advantageous effects as those of the above gamesystem are obtained.

These and other objects, features, aspects and advantages of the presentinvention will become more apparent from the following detaileddescription of the present invention when taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an external view illustrating a game system 1 according to anembodiment of the present invention;

FIG. 2 is a functional block diagram of a game apparatus main body 5 inFIG. 1;

FIG. 3 is a perspective view illustrating an external appearance of acontroller 7 in FIG. 1;

FIG. 4 is a perspective view illustrating a state where a connectioncable 79 of the controller 7 in FIG. 3 is disconnected from a core unit70;

FIG. 5 is a perspective view of the core unit 70 in FIG. 3 seen from atop rear side thereof;

FIG. 6 is a perspective view of the core unit 70 in FIG. 5 seen from abottom front side thereof;

FIG. 7 is a perspective view illustrating a state where an upper housingof the core unit 70 in FIG. 5 is removed;

FIG. 8 is a perspective view illustrating a state where a lower housingof the core unit 70 in FIG. 6 is removed;

FIG. 9 is a perspective view illustrating an example of a subunit 76;

FIG. 10 is a perspective view illustrating a state where an upperhousing of the subunit 76 in FIG. 9 is removed;

FIG. 11 is a block diagram illustrating a structure of the controller 7in FIG. 3;

FIG. 12 illustrates a state where a game operation is performed by meansof the controller 7 in FIG. 3;

FIG. 13 is an exemplary view illustrating a state where a player holdsthe core unit 70 with a right hand seen from a front side of the coreunit 70;

FIG. 14 is an exemplary view illustrating a state where the player holdsthe core unit 70 with the right hand seen from a left side of the coreunit 70;

FIG. 15 is a view illustrating viewing angles of LED modules 8L and 8Rand an image pickup element 743;

FIG. 16 is an exemplary view illustrating a state where the player holdsthe subunit 76 with a left hand seen from a right side of the subunit76;

FIG. 17 shows an example of main data stored in a main memory 33 of thegame apparatus main body 5;

FIG. 18 is a flow chart showing a procedure of game processing executedby the game apparatus main body 5;

FIG. 19 is a flow chart of a subroutine showing a detailed operation ofsubunit movement processing at a step 15 in FIG. 18;

FIG. 20 is a flow chart of a subroutine showing a detailed operation ofpass processing at a step 16 in FIG. 18;

FIG. 21 is a flow chart of a subroutine showing a detailed operation offirst shot processing at a step 17 in FIG. 18;

FIG. 22 is a flow chart of a subroutine showing a detailed operation ofsecond shot processing at a step 18 in FIG. 18;

FIG. 23 is a flow chart of a subroutine showing a detailed operation oftemporary coach mode processing at a step 19 in FIG. 18;

FIG. 24 is a flow chart of a subroutine showing a detailed operation ofcoach mode processing at a step 20 in FIG. 18;

FIG. 25 is an exemplary view illustrating a game image displayed on amonitor 2;

FIG. 26 is a view illustrating a position vector Vc which is set to aplayer character PC;

FIG. 27 is a view illustrating a target position TP of a pass andregions A and B;

FIG. 28 illustrates an example of paths along which a ball object B isto move;

FIG. 29 illustrates an example of movement vectors Vmnpc which are setto non-player characters NPC; and

FIG. 30 is a flow chart of a subroutine showing a detailed operation ofanother example of the subunit movement processing.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

With reference to FIG. 1, the following will describe a game apparatusaccording to an embodiment of the present invention. Hereinafter, a gamesystem including a stationary game apparatus as an example of the gameapparatus will be described in detail. FIG. 1 is an external viewillustrating the game system 1 including the stationary game apparatus3, and FIG. 2 is a block diagram of a game apparatus main body 5. Thegame system 1 will be described below.

As shown in FIG. 1, the game system 1 includes a home-use televisionreceiver (hereinafter, referred to as a monitor) 2 as an example ofdisplay means, and the stationary game apparatus 3 which is connected tothe monitor 2 via a connecting cord. The monitor 2 includes a pair ofspeakers 2 a for audio-outputting audio signals outputted from the gameapparatus main body 5. The game apparatus 3 includes an optical disc 4storing a game program of the present invention, the game apparatus mainbody 5 provided with a computer for executing the game program of theoptical disc 4 to display a game image on the monitor 2, and acontroller 7 for providing the game apparatus main body 5 with operationinformation which is required for a game and which operate a characterand the like displayed in the game image.

The game apparatus main body 5 includes therein a communication unit 6(see FIG. 2). The communication unit 6 receives data transmittedwirelessly from the controller 7, and transmits data from the gameapparatus main body 5 to the controller 7, so that the game apparatusmain body 5 and the controller 7 are connected to each other by radiocommunication. Further, the optical disc 4 as an example of anexchangeable information storage medium is detachably mounted to thegame apparatus main body 5. On a front main surface of the gameapparatus main body 5, a power ON/OFF switch for the game apparatus mainbody 5, a reset switch for game processing, a slot through which theoptical disc 4 is mounted or dismounted, an eject switch for ejectingthe optical disc 4 through the slot of the game apparatus main body 5,and the like are provided.

The game apparatus main body 5 includes a flash memory 38 functioning asa backup memory to store data such as save data, and the like in a fixedmanner. The game apparatus main body 5 executes the game program and thelike stored in the optical disc 4, and displays the result as a gameimage on the monitor 2. Further, the game apparatus main body 5re-cerates a game state, which has been executed previously, by usingthe save data stored in the flash memory 17, and displays a game imageon the monitor 2. A player of the game apparatus main body 5 operatesthe controller 7 while watching a game image displayed on the monitor 2,and enjoys game process.

By using the technology of, for example, Bluetooth (registeredtrademark), the controller 7 wirelessly transmits transmission data suchas the operation information and the like to the game apparatus mainbody 5 including the communication unit 6. The controller 7 includes twocontrol units (a core unit 70 and a subunit 76) which are connected toeach other by a flexible connection cable 79, and is operation means formainly operating a player object which appears in a game space displayedon the monitor 2. The core unit 70 and the subunit 76 are each providedwith a operation section such as a plurality of operation buttons, akey, a stick, and the like. As described later in detail, the core unit70 includes an imaging information calculation section 74 for taking animage viewed from the core unit 70. As an example of targets whoseimages are to be taken by the imaging information calculation section74, two LED modules 8L and 8R (hereinafter, referred to as markers 8Land 8R) are provided in the vicinity of the display screen of themonitor 2. The markers 8L and 8R each output an infrared light forwardfrom the monitor 2. Although the core unit 70 and the subunit 76 areconnected to each other by the flexible cable in the present embodiment,the subunit 76 a may be provided with a wireless unit, therebydispensing with the connection cable 79. For example, the subunit 76 isprovided with a Bluetooth (registered trademark) unit, whereby thesubunit 76 can transmit operation data to the core unit 70. Thecontroller 7 (e.g. the core unit 70) also receives at a communicationsection 75 transmission data transmitted wirelessly from thecommunication unit 6 of the game apparatus main body 5, and producessound and vibration in accordance with the transmission data.

As shown in FIG. 2, the game apparatus main body 5 includes, forexample, a CPU (central processing unit) 30 for executing variousprograms. The CPU 30 executes a boot program stored in a boot ROM (notshown) to initialize memories including a main memory 33, and the like,and then executes the game program stored in the optical disc 4 toperform game processing or the like in accordance with the game program.The CPU 30 is connected to a GPU (Graphics Processing Unit) 32, the mainmemory 33, a DSP (Digital Signal Processor) 34, and an ARAM (audio RAM)35 via a memory controller 31. The memory controller 31 is connected tothe communication unit 6, a video I/F (interface) 37, the flash memory38, an audio I/F 39, and a disc I/F 41 via a predetermined bus. Thevideo I/F 37, the audio I/F 39 and the disc I/F 41 are connected to themonitor 2, the speakers 2 a, and a disc drive 40, respectively.

The GPU 32 performs image processing based on an instruction from theCPU 30. The GPU 32 includes, for example, a semiconductor chip forperforming calculation processing which is required for displaying 3Dgraphics. The GPU 32 performs the image processing by using a memory(not shown) dedicated for image processing and a part of the storagearea of the main memory 33. The GPU 32 generates game image data and amovie to be displayed on the monitor 2 by using such memories, andoutputs the generated data or movie to the monitor 2 via the memorycontroller 31 and the video I/F 37 as necessary.

The main memory 33 is a storage area used by the CPU 30, and stores agame program or the like required for processing executed by the CPU 30as necessary. For example, the main memory 33 stores the game programread from the optical disc 4 by the CPU 30, various data or the like.The game program, the various data or the like stored in the main memory33 are executed by the CPU 30.

The DSP 34 processes sound data or the like which is generated by theCPU 30 during the execution of the game program. The DSP 34 is connectedto the ARAM 35 for storing the sound data or the like. The ARAM 35 isused when the DSP 34 performs predetermined processing (e.g. storage ofthe game program or sound data already read). The DSP 34 reads the sounddata stored in the ARAM 35, and causes the speakers 2 a of the monitor 2to output the sound data via the memory controller 31 and the audio I/F39.

The memory controller 31 comprehensively controls data transmission, andis connected to the various I/Fs described above. As described above,the communication unit 6 receives the transmission data from thecontroller 7, and outputs the transmission data to the CPU 30. Thecommunication unit 6 transmits transmission data outputted from the CPU30 to the communication section 75 of the controller 7. The monitor 2 isconnected to the video I/F 37. The speakers 2 a built in the monitor 2are connected to the audio I/F 39 so as to allow the sound data read bythe DSP 34 from the ARAM 35 or sound data directly outputted from thedisc drive 40 to be outputted from the speakers 2 a. The disc I/F 41 isconnected to the disc drive 40. The disc drive 40 reads data stored inthe optical disc 4 which is located at a predetermined reading position,and outputs the data to a bus of the game apparatus main body 5 and theaudio I/F 39.

With reference to FIGS. 3 and 4, the following will describe thecontroller 7. FIG. 3 is a perspective view illustrating an externalappearance of the controller 7. FIG. 4 is a perspective viewillustrating a state where the connection cable 79 of the controller 7in FIG. 3 is disconnected from the core unit 70.

As shown in FIG. 3, the controller 7 includes the core unit 70 and thesubunit 76 which are connected to each other by the connecting cable 79.The core unit 70 has a housing 71 which is provided with a plurality ofoperation sections 72. The subunit 76 has a housing 77 which is providedwith a plurality of operation sections 78. The core unit 70 and thesubunit 76 are connected to each other by the connecting cable 79.

As shown in FIG. 4, the connecting cable 79 has at one end thereof aconnector 791 which is detachably connected to a connector 73 of thecore unit 70, and is fixedly connected at the other end thereof to thesubunit 76. The connector 791 of the connecting cable 79 is engaged withthe connector 73 provided at the rear surface of the core unit 70 so asto connect the core unit 70 to the subunit 76 by the connecting cable79.

With reference to FIGS. 5 and 6, the following will describe the coreunit 70. FIG. 5 is a perspective view of the core unit 70 seen from atop rear side thereof. FIG. 6 is a perspective view of the core unit 70seen from a bottom front side thereof.

As shown in FIGS. 5 and 6, the core unit 70 includes the housing 71which is formed, for example, by plastic molding. The housing 71 has agenerally parallelepiped shape extending in a longitudinal directionfrom front to rear. The overall size of the housing 71 is small enoughto be held by one hand of an adult or even a child.

At the center of a front part of a top surface of the housing 71, across key 72 a is provided. The cross key 72 a is a cross-shapedfour-direction push switch. The cross key 72 a includes operationportions corresponding to the four directions (front, rear, right andleft) represented by arrows, which are respectively located oncross-shaped projecting portions arranged at intervals of 90 degrees.The player selects one of the front, rear, right and left directions bypressing one of the operation portions of the cross key 72 a. Through anoperation on the cross key 72 a, the player can, for example, instruct adirection in which a player character or the like appearing in a virtualgame world is to move or a direction in which a cursor is to move.

The cross key 72 a is an operation section for outputting an operationsignal in accordance with the above-described direction input operationperformed by the player. Such an operation section may be provided inanother form. For example, the cross key 72 a may be replaced with acomposite switch including a push switch including a ring-shapedfour-direction operation section and a center switch provided at thecenter thereof. Alternatively, the cross key 72 a may be replaced withan operation section which includes an inclinable stick projecting fromthe top surface of the housing 71 and outputs an operation signal inaccordance with the inclining direction of the stick. Stillalternatively, the cross key 72 a may be replaced with an operationsection which includes a disc-shaped member horizontally slideable andoutputs an operation signal in accordance with the sliding direction ofthe disc-shaped member. Still alternatively, the cross key 72 a may bereplaced with a touchpad. Still alternatively, the cross key 72 a may bereplaced with an operation section which includes switches representingat least four directions (front, rear, right and left) and outputs anoperation signal in accordance with the switch pressed by the player.

Behind the cross key 72 a on the top surface of the housing 71, aplurality of operation buttons 72 b to 72 g are provided. The operationbuttons 72 b to 72 g are each an operation section for outputting arespective operation signal assigned to the operation buttons 72 b, 72c, 72 d, 72 e, 72 f or 72 g when the player presses a head thereof. Forexample, functions of a number one button, a number two button, and an Abutton are assigned to the operation buttons 72 b to 72 d, respectively.Further, functions of a minus button, a home button and a plus buttonare assigned to the operation buttons 72 e to 72 g, respectively.Various functions are assigned to the operation buttons 72 b to 72 g inaccordance with the game program executed by the game apparatus 3, butthis will be described in detail later. In an exemplary arrangementshown in FIG. 5, the operation buttons 72 b to 72 d are arranged in aline at the center in the front-rear direction on the top surface of thehousing 71. The operation buttons 72 e to 72 g are arranged in a line inthe left-right direction between the operation buttons 72 b and 72 d onthe top surface of the housing 71. The operation button 72 f has a topsurface thereof buried in the top surface of the housing 71, so as notto be inadvertently pressed by the player.

In front of the cross key 72 a on the top surface of the housing 71, anoperation button 72 h is provided. The operation button 72 h is a powerswitch for remote-controlling the power of the game apparatus main body5 to be on or off. The operation button 72 h also has a top surfacethereof buried in the top surface of the housing 71, so as not to beinadvertently pressed by the player.

Behind the operation button 72 c on the top surface of the housing 71, aplurality of LEDs 702 are provided. A controller type (a controlleridentification number) is assigned to the controller 7 so as to bedistinguishable from the other controllers 7. For example, the LEDs 702are used for informing the player of the controller type which iscurrently assigned to controller 7. Specifically, when the core unit 70transmits the transmission data to the communication unit 6, one of theplurality of LEDs 702 corresponding to the controller type is lit up.

On the top surface of the housing 71, a plurality of holes is providedbetween the operation button 72 b and the operation buttons 72 e to 72 gfor emitting sound from a speaker (a speaker 706 in FIG. 5), which willbe described later, to the outside therethrough.

On a bottom surface of the housing 71, a recessed portion is formed. Asdescribed later in detail, the recessed portion is formed at a positionat which an index finger or middle finger of the player is located whenthe player holds the core unit 70. On a slope surface of the recessedportion, an operation button 72 i is provided. The operation button 72 iis an operation section acting as, for example, a B button. Theoperation button 72 i is used, for example, as a trigger switch fortaking a shot in a soccer game, or for operation to switch a player, andthe like.

On a front surface of the housing 71, an image pickup element 743constituting a part of the imaging information calculation section 74 isprovided. The imaging information calculation section 74 is a system foranalyzing image data taken by the core unit 70, thereby identifying anarea having a high brightness in the image and detecting a position of acenter of gravity, a size and the like of the area. The imaginginformation calculation section 74 has, for example, a maximum samplingperiod of about 200 frames/sec., and therefore can trace and analyzeeven a relatively fast motion of the core unit 70. The imaginginformation calculation section 74 will be described later in detail. Ona rear surface of the housing 71, the connector 73 is provided. Theconnector 73 is, for example, a 32-pin edge connector, and is used forengaging and connecting the core unit 70 with the connector 791 of theconnecting cable 79.

For giving a more specific description, a coordinate system set withrespect to the core unit 70 will be defined. As shown in FIGS. 5 and 6,mutually perpendicular X-axis, Y-axis, and Z-axis are defined withrespect to the core unit 70. More specifically, the longitudinaldirection of the housing 71 or the front-rear direction of the core unit70 corresponds to Z-axis, and the direction toward the front surface ofthe core unit 70 (the surface in which the imaging informationcalculation section 74 is provided) is a positive direction of Z-axis.The up-down direction of the core unit 70 corresponds to Y-axis, and thedirection toward the top surface of the housing 71 (the surface on whichthe operation button 72 a is provided) is a positive direction ofY-axis. The left-right direction of the core unit 70 corresponds toX-axis, and the direction toward the right side surface housing 71 (theside surface which is not shown in FIG. 6 but shown in FIG. 5) is apositive direction of X-axis.

With reference to FIGS. 7 and 8, the following will describe an internalstructure of the core unit 70. FIG. 7 is a perspective view illustratinga state where an upper housing (a part of the housing 71) of the coreunit 70 is removed. FIG. 8 is a perspective view illustrating a statewhere a lower housing (a part of the housing 71) of the core unit 70 isremoved. FIG. 8 is a perspective view illustrating a reverse side of asubstrate 700 shown in FIG. 7.

As shown in FIG. 7, the substrate 700 is fixed inside the housing 71. Ona top main surface of the substrate 700, the operation buttons 72 a to72 h, an acceleration sensor 701, the LEDs 702, and an antenna 754 andthe like are provided. These components are connected to a microcomputer751, and the like (see FIGS. 8 and 11) by lines (not shown) formed onthe substrate 700 and the like. The core unit 70 functions as a wirelesscontroller by a wireless module 753 (see FIG. 11) and the antenna 754.In the housing 71, a crystal oscillator (not shown) is provided forgenerating a basic clock of the microcomputer 751, which will bedescribed later. On the top main surface of the substrate 700, thespeaker 706 and an amplifier 708 are provided. The acceleration sensor701 is provided on the periphery of the substrate 700, not on the centerthereof. The acceleration sensor 701 is capable of detectingacceleration included in a component caused by a centrifugal force inaccordance with rotation of the core unit 70 about the longitudinaldirection, in addition to change of direction of gravitationalacceleration. Thus, the rotation of the core unit 70 can be sensitivelydetermined from data of the detected acceleration by using apredetermined calculation.

As shown in FIG. 8, at a front edge of a bottom main surface of thesubstrate 700, the imaging information calculation section 74 isprovided. The imaging information calculation section 74 includes aninfrared filter 741, a lens 742, the image pickup element 743 and animage processing circuit 744 which are located in this order from thefront surface of the core unit 70. These components are attached to thebottom main surface of the substrate 700. At a rear edge of the bottommain surface of the substrate 700, the connector 73 is attached. On thebottom main surface of the substrate 700, a sound IC 707 and themicrocomputer 751 are provided. The sound IC 707 is connected to themicrocomputer 751 and the amplifier 708 by lines formed on the substrate700 and the like, and outputs a sound signal to the speaker 706 via theamplifier 708 in accordance with the sound data transmitted from thegame apparatus main body 5. On the bottom main surface of the substrate700, a vibrator 704 is attached. The vibrator 704 is, for example, avibration motor or a solenoid. The core unit 70 is vibrated by anactuation of the vibrator 704, and the vibration is conveyed to theplayer holding the core unit 70. Thus, a so-called vibration-feedbackgame is realized. Since the vibrator 704 is located in the front portionof the housing 71, the housing 71 is vibrated substantially, and hencethe player holding the core unit 70 easily feels the vibration.

With reference to FIGS. 9 and 10, the subunit 76 will be described. FIG.9 is a perspective view illustrating an example of the subunit 76. FIG.10 is a perspective view illustrating a state where an upper housing (apat of the housing 77) of the subunit 76 in FIG. 9 is removed.

As shown in FIG. 9, the subunit 76 includes the housing 77 which isformed, for example, by plastic molding. The housing 77 extends in alongitudinal direction from front to rear, and has a streamline solidshape including a head which is a widest portion in the subunit 76. Theoverall size of the subunit 76 is small enough to be held by one hand ofan adult or even a child. Further, the housing 77 of the subunit 76 canbe held so that the player wraps a palm and fingers other than a thumbaround the housing 77, and its shape is designed so that the player'sthumb is positioned on a stick 78 a when the player holds the housing77.

In the vicinity of the widest portion on the top surface of the housing77, the stick 78 a is provided. The stick 78 a is an operation sectionwhich includes an inclinable stick projecting from the top surface ofthe housing 77, detects the inclining direction (additionally, an amountof the inclination) of the stick, and outputs an operation signal inaccordance with the inclining direction. For example, the player canarbitrarily designate a direction and a position by inclining a sticktip in an Y-direction of 360 degrees, thereby instructing a direction inwhich the player character or the like appearing in the virtual gameworld is to move, or instructing a direction in which the cursor is tomove. Also, the player can instruct a movement amount of the playercharacter, the cursor, or the like by the amount of the inclination ofthe stick 78 a.

Although the stick 78 a is an operation section for outputting anoperation signal in accordance with a direction input operationperformed by the player, such an operation section may be provided inanother form. For example, the stick 78 a may be replaced with the abovecross key or a composite switch including a push switch including aring-shaped four-direction operation section and a center switchprovided at the center thereof. Alternatively, the stick 78 a may bereplaced with an operation section which includes a disc-shaped memberhorizontally slideable and outputs an operation signal in accordancewith the sliding direction of the disc-shaped member. Stillalternatively, the stick 78 a may be replaced with a touch pad. Stillalternatively, the stick 78 a may be replaced with an operation sectionwhich includes switches representing at least four directions (front,rear, right and left) and outputs an operation signal in accordance withthe switch pressed by the player.

On the front surface of the housing 77 of the subunit 76, two operationbuttons 78 d and 78 e are provided. The operation buttons 78 d and 78 eare each an operation section for outputting a respective operationsignal assigned to the operation buttons 78 d and 78 e when the playerpresses a head thereof. For example, functions of an X button and a Ybutton are assigned to the operation buttons 78 d and 78 e,respectively. The operation buttons 78 d, and 78 e are assigned with therespective functions in accordance with the game program executed by thegame apparatus 3, but this will not be described in detail because thefunctions are not directly relevant to the present invention. In theexemplary arrangement shown in FIG. 9, the operation buttons 78 d and 78e are arranged in a line in the up-down direction on the front surfaceof the housing 77.

As shown in FIG. 10, a substrate is fixed inside the housing 77. On atop main surface of the substrate, the stick 78 a, an accelerationsensor 761, and the like are provided. These components are connected tothe connection cable 79 by lines (not shown) formed on the substrate andthe like. The acceleration sensor 761 is preferably located at thecenter of the housing 77 in a longitudinal direction thereof and in alateral direction thereof. When the player holds the housing 77 so as towrap a palm and fingers other than a thumb around the housing 77, thehousing 77 is preferably positioned in a space surrounded by a palm andfingers (more preferably, at the substantially center of the space).

For giving a more specific description, a coordinate system set withrespect to the subunit 76 will be defined. As shown in FIG. 9, mutuallyperpendicular X-axis, Y-axis, and Z-axis are defined with respect to thesubunit 76. More specifically, the longitudinal direction of the housing77 or the front-rear direction of the subunit 76 corresponds to Z-axis,and the direction toward the front surface of the subunit 76 (thesurface on which the operation buttons 78 d and 78 e are provided) is apositive direction of Z-axis. The up-down direction of the subunit 76corresponds to Y-axis, and the direction toward the top surface of thehousing 77 (the direction in which the stick 78 a projects) is apositive direction of Y-axis. The left-right direction of the subunit 76corresponds to X-axis, and the direction toward the right side surfacehousing 77 (the side surface which is not shown in FIG. 9) is a positivedirection of X-axis.

The following will describe an internal structure of the controller 7.FIG. 11 is a block diagram illustrating a structure of the controller 7.

As shown in FIG. 11, the core unit 70 includes therein the communicationsection 75 in addition to the aforementioned operation section 72, theimaging information calculation section 74, the acceleration sensor 701,the vibrator 704, the speaker 706, the sound IC 707, and the amplifier708. The subunit 76 includes the aforementioned operation section 78 andthe acceleration sensor 761, which are connected to the microcomputer751 via the connection cable 79 and the connectors 791 and 73.

The imaging information calculation section 74 includes the infraredfilter 741, the lens 742, the image pickup element 743, and the imageprocessing circuit 744. The infrared filter 741 allows, among lightsincident on the front surface of the core unit 70, only an infraredlight to pass therethrough. The lens 742 converges the infrared lightwhich has passed through the infrared filter 741, and outputs theinfrared light to the image pickup element 743. The image pickup element743 is a solid-state image pickup element such as a CMOS sensor or aCCD. The image pickup element 743 takes an image of the infrared lightcollected by the lens 742. In other words, the image pickup element 743takes an image of only the infrared light which has passed through theinfrared filter 741. Then, the image pickup element 743 generates imagedata of the image. The image data generated by the image pickup element743 is processed by the image processing circuit 744. More specifically,the image processing circuit 744 processes the image data obtained fromthe image pickup element 743, detects an area of the image which has ahigh brightness, and outputs to the communication section 75 processresult data indicating the result of a calculated coordinate positionand a square measure of the area. The imaging information calculationsection 74 is fixed to the housing 71 of the core unit 70. An imagingdirection of the imaging information calculation section 74 can bechanged by changing a facing direction of the housing 71.

The core unit 70 preferably includes a three-axis (X-axis, Y-axis, andZ-axis) acceleration sensor 701. The subunit 76 preferably includes athree-axis (X-axis, Y-axis, and Z-axis) acceleration sensor 761. Thethree-axis acceleration sensors 701 and 761 each detect linearacceleration in three directions, i.e., an up-down direction, aleft-right direction, and a front-rear direction (the aforementionedX-axis, Y-axis, and Z-axis directions). In an alternative embodiment, atwo-axis accelerometer which detects only linear acceleration along eachof the up-down direction and the left-right direction (the other pair ofaxes), or a one-axis accelerometer which detects only linearacceleration along any one of the axes may be used depending on the typeof control signals used in the game processing. As a non-limitingexample, the one-axis, two-axis, or three-axis acceleration sensors 701and 761 may be of the type available from Analog Devices, Inc. orSTMicroelectronics N.V. Preferably, the acceleration sensors 701 and 761may be of electrostatic capacitance or capacitance-coupling type whichis based on silicon micro-machined MEMS (microelectromechanical systems)technology. However, any other suitable accelerometer technology (e.g.,piezoelectric type or piezoresistance type) now existing or laterdeveloped may be used to provide the one-axis, two-axis, or three-axisacceleration sensors 701 and 761.

As one skilled in the art understands, accelerometers, as used in theacceleration sensors 701 and 706, are only capable of detectingacceleration along a straight line (linear acceleration) correspondingto each axis of the acceleration sensor. In other words, the directoutputs of the acceleration sensors 701 and 761 are limited to signalsindicative of linear acceleration (static or dynamic) along each of theone, two or three axes thereof. As a result, the acceleration sensors701 and 761 cannot directly detect movement along a non-linear (e.g.arcuate) path, rotation, rotational movement, angular displacement,inclination, position, attitude or any other physical characteristic.

However, through processing by a computer such as the processor of agame apparatus (e.g. the CPU 30) or the processor of the controller 7 orthe subunit 76 (e.g. the microcomputer 751) based on the linearacceleration signals outputted from the acceleration sensors 701 and761, additional information relating to the core unit 70 and the subunit76 can be inferred or calculated, as one skilled in the art will readilyunderstand from the description herein.

For example, when the processing is performed by the computer on theassumption that the core unit 70 and the subunit 76 provided with theacceleration sensors 701 and 761, respectively, are in static state (orwhen the processing is performed while only gravitational accelerationis detected by the acceleration sensors 701 and 761), if the core unit70 and the subunit 76 are actually in static state, the detectedacceleration are used to determine whether or not the core unit 70 andthe subunit 76 are inclined relative to the direction of gravity or howmany degrees the core unit 70 and the subunit 76 are inclined relativeto the direction of gravity. More specifically, when a state where thedetection axes of the acceleration sensors 701 and 761 extend in avertically-down direction is set as a standard state, it is possible todetermine whether or not the core unit 70 and the subunit 76 areinclined by determining whether 1 G (gravitational acceleration) isapplied in the direction of the detection axes of the accelerationsensors 701 and 761. It is also possible to determine how many degreesthe core unit 70 and the subunit 76 are inclined with respect to thevertically-down direction by determining the magnitude of theacceleration applied in the above detection axis directions. Inaddition, in the case where the acceleration sensors 701 and 761 arecapable of detecting multi-axis acceleration, it is possible todetermine in detail how many degrees the core unit 70 and the subunit 76are inclined relative to the direction of gravity through processing ofa signal of acceleration detected for each axis. In this case, aprocessor may perform processing based on the outputs from theacceleration sensors 701 and 761 for calculating inclination angle dataof the core unit 70 and the subunit 76. Alternatively, processing may beperformed so as to infer rough inclination of the core unit 70 and thesubunit 76 based on the outputs from the acceleration sensors 701 and761 without calculating the inclination angle data. As described above,the acceleration sensors 701 and 761 are used in combination with theprocessor to determine inclination, attitude or position of the coreunit 70 and the subunit 76.

On the other hand, on the assumption that the acceleration sensors 701and 761 are in dynamic state, the acceleration sensor 701 and 761 detectacceleration corresponding to motion of the acceleration sensors 701 and761 in addition to a gravitational acceleration component. Thus, it ispossible to determine the directions of the motion of the core unit 70and the subunit 76 by eliminating the gravitational accelerationcomponent through predetermined processing. More specifically, variousmovements and/or positions of the core unit 70 and the subunit 76 can becalculated or inferred through processing of the acceleration signalsgenerated by the acceleration sensors 701 and 761 when the core unit 70and the subunit 76 provided with the acceleration sensors 701 and 761,respectively, are subjected to dynamic acceleration by the hand of theplayer. It is noted that even on the assumption that the accelerationsensors 701 and 761 are in dynamic state, it is possible to determineinclinations of the core unit 70 and the subunit 76 relative to thedirection of gravity by eliminating acceleration corresponding to motionof the acceleration sensors 701 and 761 through predeterminedprocessing.

In an alternative embodiment, the acceleration sensors 701 and 761 mayeach include an embedded signal processor or other type of dedicatedprocessor for performing any desired processing of the accelerationsignals outputted from accelerometers therein prior to outputtingsignals to the microcomputer 751. For example, the embedded or dedicatedprocessor could convert the detected acceleration signal into acorresponding inclination angle when the acceleration sensors 701 and761 are intended to detect static acceleration (e.g. gravitationalacceleration). Data indicative of the acceleration detected by each ofthe acceleration sensors 701 and 761 is outputted to the communicationsection 75.

When the player holds and shakes the core unit 70 and the subunit 76,the motion speeds up at the beginning of the shake, and speeds down atthe end of the shake. In other words, after acceleration is generated inthe core unit 70 and the subunit 76 in the same direction as the shakingdirection at the beginning of the shake, the magnitude of theacceleration decreases gradually, and acceleration is generated in thecore unit 70 and the subunit 76 in a direction opposite to the shakingdirection at the end of the shake. On the other hand, generally,acceleration vectors (or a positive or negative sign of acceleration)outputted from the acceleration sensors 701 and 761 have directionsopposite to the acceleration directions of the core unit 70 and thesubunit 76, respectively.

In an alternative embodiment, at least one of the acceleration sensors701 and 706 may be replaced with a gyro-sensor of any suitabletechnology incorporating, for example, a rotating or vibrating element.Exemplary MEMS gyro-sensors that may be used in this embodiment areavailable from Analog Devices, Inc. Unlike the linear accelerationsensors 701 and 761, a gyro-sensor is capable of directly detectingrotation (or angular rate) around an axis defined by the gyroscopicelement (or elements) therein. Thus, due to the fundamental differencesbetween a gyro-sensor and an linear acceleration sensor, correspondingchanges need to be made to the processing operations that are performedon the output signals from these devices depending on which device isselected for a particular application.

Specifically, when a gyro-sensor is used instead of an accelerationsensor to calculate inclination and attitude, significant changes arenecessary. More specifically, when a gyro-sensor is used, the value ofinclination is initialized at the start of detection. Then, data onangular velocity which is outputted from the gyro-sensor is integrated.Furthermore, a change amount in inclination from the value of tilepreviously initialized is calculated. In this case, the calculatedinclination is determined as a value corresponding to an angle. Incontrast, when an acceleration sensor is used, inclination is calculatedby comparing the value of the gravitational acceleration of each axialcomponent with a predetermined reference. Therefore, the calculatedinclination can be represented as a vector. Thus, withoutinitialization, an absolute direction can be determined with anaccelerometer. The type of the value calculated as an inclination isalso very different between a gyro-sensor and an accelerometer; i.e.,the value is an angle when a gyro-sensor is used and is a vector when anaccelerometer is used. Therefore, when a gyro-sensor is used instead ofan acceleration sensor, data on inclination also needs to be processedby a predetermined conversion that takes into account the fundamentaldifferences between these two devices. Due to the fact that the natureof gyro-sensors is known to one skilled in the art, as well as thefundamental differences between accelerometers and gyro-sensors, furtherdetails are not provided herein. While gyro-sensors provide certainadvantages due to their ability to directly detecting rotation,acceleration sensors are generally more cost-effective as compared withthe gyro-sensors when used for the controller of the present embodiment.

The communication section 75 includes the microcomputer 751, a memory752, the wireless module 753, and the antenna 754. The microcomputer 751controls the wireless module 753 for wirelessly transmitting thetransmission data while using the memory 752 as a storage area duringprocessing. The microcomputer 751 controls the operations of the soundIC 707 and the vibrator 704 in accordance with the data which thewireless module 753 receives from the game apparatus main body 5 via theantenna 754. The sound IC 707 processes the sound data and the liketransmitted from the game apparatus main body 5 via the communicationsection 75. The microcomputer 751 actuates the vibrator 704 inaccordance with vibration data (e.g. signals for actuating andunactuating the vibrator 704) transmitted from the game apparatus mainbody 5 via the communication section 75. Identification number datawhich is uniquely set for each core unit 70 is stored in the memory 752or nonvolatile storage means (not shown).

Data from the core unit 70 including an operation signal (core key data)from the operation section 72, acceleration signals (core accelerationdata) from the acceleration sensor 701, and the process result data fromthe imaging information calculation section 74 are outputted to themicrocomputer 751. An operation signal (sub key data) from the operationsection 78 of the subunit 76 and acceleration signals (sub accelerationdata) from the acceleration sensor 761 are outputted to themicrocomputer 751 via the connecting cable 79. The microcomputer 751temporarily stores the input data (the core key data, the sub key data,the core acceleration data, the sub acceleration data, and the processresult data) in the memory 752 as the transmission data which is to betransmitted to the communication unit 6. The wireless transmission fromthe communication section 75 to the communication unit 6 is performedperiodically at a predetermined time interval. Since game process isgenerally performed at a cycle of 1/60 sec., data needs to be collectedand transmitted at a cycle of a shorter time period. Specifically, thegame process unit is 16.7 ms (1/60 sec.), and the transmission intervalof the communication section 75 structured using the Bluetooth(registered trademark) technology is 5 ms. At the transmission timing tothe communication unit 6, the microcomputer 751 outputs the transmissiondata stored in the memory 752 as a series of operation information tothe wireless module 753 so as to assign thereto a controlleridentification number which is unique to the controller 7. The wirelessmodule 753 uses, for example, the Bluetooth (registered trademark)technology to modulate the operation data onto a carrier wave of apredetermined frequency and to radiate the resultant weak radio signalfrom the antenna 754. Thus, the core key data from the operation section72 provided in the core unit 70, the sub key data from the operationsection 78 provided in the subunit 76, acceleration data from theacceleration sensor 701, the sub key data from the operation section 78provided in the subunit 76, the core acceleration data from theacceleration sensor 701 provided in the core unit 70, the subacceleration data from the acceleration sensor 761 provided in thesubunit 76, the process result data from the imaging informationcalculation section 74, and the controller identification number aremodulated onto the weak radio signal by the wireless module 753 andradiated from the core unit 70. The communication unit 6 of the gameapparatus 3 receives the weak radio wave signal, and the game apparatus3 demodulates or decodes the weak radio signal to obtain the series ofoperation information (the core key data, the sub key data, the coreacceleration data, the sub acceleration data, and the process resultdata) and the controller identification number. Based on the obtainedoperation information and the game program, the CPU 30 of the gameapparatus 3 performs the game processing.

As shown in FIG. 12, in order to play a game by means of the controller7 with the game system 1, a player holds the core unit 70 with one hand(e.g. a right hand) (see FIGS. 13 and 14), and holds the subunit 76 withthe other hand (e.g. a left hand) (see FIG. 16). The player holds thecore unit 70 so as to point the front surface of the core unit 70 (thatis, a side having an entrance through which light is incident on theimaging information calculation section 74 taking an image of the light)to the monitor 2. On the other hand, the two LED modules 8L and 8R areprovided in the vicinity of the display screen of the monitor 2. The LEDmodules 8L and 8R each outputs infrared light forward from the monitor2.

When a player holds the core unit 70 so as to point the front surfacethereof to the monitor 2, infrared lights outputted by the two LEDmodules 8L and 8R are incident on the imaging information calculationsection 74. The image pickup element 743 takes images of the infraredlights incident through the infrared filter 741 and the lens 742, andthe image processing circuit 744 processes the taken images. The imaginginformation calculation section 74 detects infrared components outputtedby the LED modules 8L and 8R so as to obtain positions and areainformation of the LED modules 8L and 8R. Specifically, the imaginginformation calculation section 74 analyzes image data taken by theimage pickup element 743, eliminates images which do not represent theinfrared lights outputted by the LED modules 8L and 8R from the areainformation, and identifies points each having a high brightness aspositions of the LED modules 8L and 8R. The imaging informationcalculation section 74 obtains position coordinates, coordinates of thecenter of gravity, and the like of each of the identified points havingthe high brightness, and outputs the same as the process result data.When such process result data is transmitted to the game apparatus 3,the game apparatus 3 can obtain, based on the position coordinates andthe coordinates of the center of gravity, operation signals relating tothe motion, orientation, position and the like of the imaginginformation calculation section 74, that is, the core unit 70, withrespect to the LED modules 8L and 8R. Specifically, the position havinga high brightness in the image obtained through the communicationsection 75 is changed in accordance with the motion of the core unit 70,and therefore a direction input or coordinate input is performed inaccordance with the position having the high brightness being changed,thereby enabling a direction input or a coordinate input to be performedalong the moving direction of the core unit 70.

Thus, the imaging information calculation section 74 of the core unit 70takes images of stationary markers (infrared lights from the two LEDmodules 8L and 8R in the present embodiment), and therefore the gameapparatus 3 can use the process result data relating to the motion,orientation, position and the like of the core unit 70 in the gameprocess, whereby an operation input, which is different from anoperation input performed by pressing an operation button or by using anoperation key, is further intuitively performed. As described above,since the markers are provided in the vicinity of the display screen ofthe monitor 2, the motion, orientation, position and the like of thecore unit 70 with respect to the display screen of the monitor 2 can beeasily calculated based on positions from the markers. That is, theprocess result data used for obtaining the motion, orientation, positionand the like of the core unit 70 can be used as operation inputimmediately applied to the display screen of the monitor 2.

With reference to FIGS. 13 and 14, a state where the player holds thecore unit 70 with one hand will be described. FIG. 13 is an exemplaryview illustrating a state where the player holds the core unit 70 with aright hand seen from a front side of the core unit 70. FIG. 14 is anexemplary view illustrating a state where the player holds the core unit70 with the right hand seen from a left side of the core unit 70.

As shown in FIGS. 13 and 14, the overall size of the core unit 70 issmall enough to be held by one hand of an adult or even a child. Whenthe player puts a thumb on the top surface of the core unit 70 (e.g.near the cross key 72 a), and puts an index finger in the recessedportion on the bottom surface of the core unit 70 (e.g. near theoperation button 72 i), the light entrance of the imaging informationcalculation section 74 on the front surface of the core unit 70 isexposed forward to the player. It should be understood that also whenthe player holds the core unit 70 with a left hand, the holding state isthe same as that described for the right hand.

As shown in FIG. 15, the LED modules 8L and 8R each have a viewing angleθ1. The image pickup element 743 has a viewing angle θ2. For example,the viewing angle θ1 of the LED modules 8L and 8R is 34 degrees(half-value angle), and the viewing angle θ2 of the image pickup element743 is 41 degrees. When both the LED modules 8L and 8R are in theviewing angle θ2 of the image pickup element 743 and the image pickupelement 743 is in the viewing angle 91 of the LED module 8L and theviewing angle θ1 of the LED module 8R, the game apparatus main body 5determines a position of the core unit 70 by using positionalinformation relating to the point having high brightness of the two LEDmodules 8L and 8R.

When either the LED module 8L or LED module 8R is in the viewing angleθ2 of the image pickup element 743, or when the image pickup element 743is in either the viewing angle θ1 of the LED module 8L or the viewingangle θ1 of the LED module 8R, the game apparatus main body 5 determinesa position of the core unit 70 using the positional information relatingto the point having high brightness of the LED module 8L or the LEDmodule 8R.

As described above, the motion, orientation, and position of the coreunit 70 can be determined by using the output (the core accelerationdata) from the acceleration sensor 701 provided in the core unit 70. Inother words, the core unit 70 functions as operation input means inaccordance with the movement of the hand of the player and its directionwhen the player moves a hand holding the core unit 70 from side to sideand up and down.

With reference to FIG. 16, the following will describe a state where theplayer holds the subunit 76 with one hand. FIG. 16 is an exemplary viewillustrating a state where the player holds the subunit 76 with a lefthand seen from a right side of the subunit 76.

As shown in FIG. 16, the overall size of the subunit 76 is small enoughto be held by one hand of an adult or even a child. For example, theplayer puts a thumb on the top surface of the subunit 76 (e.g. near thestick 78 a), puts an index finger on the front surface of the subunit 76(e.g. near the operation buttons 78 d and 78 e), and puts a middlefinger, ring finger and little finger on the bottom surface of thesubunit 76, thereby holding the subunit 76. It should be understood thatalso when the player holds the subunit 76 with a right hand, the holdingstate is the same as that described for the left hand. Thus, the subunit76 allows the player to easily operate the operation section 78 such asthe stick 78 a and the operation buttons 78 d and 78 e while holding thesubunit 76 with one hand. The main body (the housing 77) of the subunit76 has such a shape and a size that the player can hold the subunit 76at the side circumference thereof with one hand.

As described above, the motion, orientation, and position of the subunit76 can be determined by using the output (the sub acceleration data)from the acceleration sensor 761 provided in the subunit 76. In otherwords, the subunit 76 functions as operation input means in accordancewith the movement of the hand of the player and its direction when theplayer moves a hand holding the subunit 76 from side to side and up anddown.

As an exemplary game realized by application of the present invention,there is a soccer game which is performed in a virtual game space. Thefollowing will describe in detail game processing for a soccer game,which is executed by the game system 1. FIG. 17 shows an example of maindata stored in the main memory 33 of the game apparatus main body 5.

As shown in FIG. 17, the main memory 33 stores therein operationinformation Da, controller identification number data Db, movementvector data Dc, posture vector data Dd, pointed coordinate data De,virtual space position coordinate data Df, instruction target playerdata Dg, position data Dh, image data Di, and the like. As describedlater in detail, each controller 7 can control movement of a specificplayer character by a coordinate input of the controller 7 in a coachmode or a temporary coach mode, and the specific player character isreferred to as an instruction target player. In addition to the dataincluded in the information in FIG. 17, the main memory 33 storestherein data required for the game processing, such as data concerningan object and the like appearing in the game, data concerning thevirtual game space, and the like. These data are generated by the CPU 30executing the game program which is stored in the optical disc 4.

The operation information Da is a series of operation information whichis transmitted as the transmission data from the controller 7, andupdated to the latest operation data. The operation information Daincludes first coordinate data Da1 and second coordinate data Da2 whichcorrespond to the above process result data. The first coordinate dataDa1 is data of coordinates representing a position (a position in ataken image) of an image of one of the markers 8L and 8R with respect toan image taken by the image pickup element 743. The second coordinatedata Da2 is data of coordinates representing a position (a position inthe taken image) of an image of the other of the markers 8L and 8R. Forexample, the position of the image of the marker is represented by an XYcoordinate system in the taken image.

The operation information Da also includes key data Da3, accelerationdata Da4, and the like in addition to the coordinate data obtained fromthe taken image (the first coordinate data Da1 and the second coordinatedata Da2) as an example of the process result data. More specifically,the key data Da3 is the core key data obtained from the operationsection 72, and the sub key data obtained from the operation section 78.The acceleration data Da4 is the core acceleration data obtained fromthe acceleration sensor 701, and the sub acceleration data obtained fromthe acceleration sensor 761. It is noted that the communication unit 6provided in the game apparatus 3 receives the operation information Dawhich is transmitted from the controller 7 at a predetermined interval,for example, every 5 ms, and the operation information Da is stored in abuffer (not shown) provided in the communication unit 6. Then, theoperation information is read, for example, for each frame (1/60 sec.)which is a game processing cycle, and its latest information is storedin the main memory 33. In addition to the latest operation information,operation information for a previous predetermined time period is storedas a history in the operation information Da according to need. In thecase where the game apparatus main body 5 is operated by a plurality ofthe controllers 7, operation information transmitted from eachcontroller 7 is stored in the operation information Da so as to beassociated with the respective controller identification number.

In the controller identification number data Db, a controlleridentification number, which is used for identifying operationinformation for each operation team and each operation mode describedlater, is described. For example, in the controller identificationnumber data Db, a controller identification number Db1 for a player modeof a team A, a controller identification number Db2 for a coach mode ofthe team A, a controller identification number Db3 for a player mode ofa team B, a controller identification number Db4 for a coach mode of theteam B, and the like are described. It is noted that the aforementionedidentification number data stored in the core unit 70 is transmittedfrom the core unit 70 and stored as the controller identification numberdata Db. All of the items in the controller identification number dataDb are not necessarily always set, and information indicating that theitem has not been set yet is set to an item which the player does notdesire to set. A team mode, to which information indicating that it hasnot been set yet is set, may be computer-controlled. In a game in whichthree teams or more exist, a plurality of the controller identificationnumber data Db, a number of which correspond to a number of the teams,is set. In a game which does not have an idea of a team, at least onecontroller for a player mode may be set. It is noted that identificationnumber data for one controller may be set to a plurality of thecontroller identification number data Db. In this case, for example,processing for a player mode and processing for a coach mode can beexecuted by operation of the one controller.

The movement vector data Dc indicates directions in which each playercharacter and a ball object appearing in the virtual game space are tomove, and velocities at which each player and the ball object are tomove. For example, in the movement vector data Dc, movement vector dataDc1 of a player character PC, movement vector data Dc2 of a non-playercharacter NPC, movement vector data Dc3 of an instruction target player,movement vector data Dc4 of a ball object B, and the like are described.In the present embodiment, the virtual game space is a three-dimensionalspace. However, it can be easily understood by one skilled in the artthat the present embodiment includes an aspect applicable to a game of atwo-dimensional space.

The posture vector data Dd indicates a posture of the upper body of theplayer character PC in the virtual game space. For example, in theposture vector data Dd, vector data (posture vector data Vc), which isdirected from the waist of the player character PC toward its head in aplayer character coordinate system, is described. The posture vectordata Vc is a three-dimensional vector.

The pointed coordinate data De indicates pointed coordinates, which arebased on a screen coordinate system of the monitor 2 and obtained basedon the first coordinate data Da1 and the second coordinate data Da2 and.For example, the pointed coordinates are calculated based on directiondata which indicates a direction from the first coordinate data Da1 tothe second coordinate data Da2 (e.g. a position of the first coordinatedata Da1 is an initial point, and a position of the second coordinatedata Da2 is an endpoint), and midpoint coordinate data indicating amidpoint between the first coordinate data Da1 and the second coordinatedata Da2. In the case where the images of the two markers (the markers8L and 8R) are regarded as one target image, the midpoint coordinatedata indicates the position of the target image. The virtual spaceposition coordinate data Df indicates a virtual space position in thevirtual game space which corresponds to the above pointed coordinates.The virtual space position coordinate data Df is calculated based on thepointed coordinate data De, a parameter of a virtual camera,configuration data of the virtual space (geographic data and objectposition data). It is noted that in the case where the game apparatusmain body 5 is operated by a plurality of the controllers 7, the pointedcoordinates calculated based on the first coordinate data Da1 and thesecond coordinate data Da2 which are transmitted from each controller 7,and the virtual space position are stored in the pointed coordinate dataDe and the virtual space position coordinate data Df, respectively, soas to be associated with the respective controller identificationnumber.

The instruction target player data Dg indicates an instruction targetplayer for each controller 7. For example, in the instruction targetplayer data Dg, data Dg1 indicating an instruction target player for acontroller 7 for the player mode of the team A, data Dg2 indicating aninstruction target player for a controller 7 for the coach mode of theteam A, data Dg3 indicating an instruction target player for acontroller 7 for the player mode of the team B, data Dg4 indicating aninstruction target player for a controller 7 for the coach mode of theteam B, and the like are described.

The position data Dh is data of coordinates in the virtual game space,which represent each position of the characters and the objectsappearing in the virtual game space. The image data Di is image data forgenerating the characters, the objects, and backgrounds appearing in thevirtual game space.

With reference to FIGS. 18 to 29, the following will describe in detailthe game processing executed by the game apparatus main body 5. FIG. 18is a flow chart showing a procedure of the game processing executed bythe game apparatus main body 5. FIG. 19 is a flow chart of a subroutineshowing a detailed operation of subunit movement processing at a step 15in FIG. 18. FIG. 20 is a flow chart of a subroutine showing a detailedoperation of pass processing at a step 16 in FIG. 18. FIG. 21 is a flowchart of a subroutine showing a detailed operation of first shotprocessing at a step 17 in FIG. 18. FIG. 22 is a flow chart of asubroutine showing a detailed operation of second shot processing at astep 18 in FIG. 18. FIG. 23 is a flow chart of a subroutine showing adetailed operation of temporary coach mode processing at a step 19 inFIG. 18. FIG. 24 is a flow chart of a subroutine showing a detailedoperation of coach mode processing at a step 20 in FIG. 18. FIG. 25 isan exemplary view illustrating a game image displayed on the monitor 2.FIG. 26 is a view illustrating a position vector Vc which is set to theplayer character PC. FIG. 27 is a view illustrating a target position TPof a pass and regions A and B. FIG. 28 illustrates an example of pathsalong which the ball object B is to move. FIG. 29 illustrates an exampleof the movement vectors Vmnpc which are set to the non-player charactersNPC. It is noted that among the game processing, processing throughwhich the soccer game is performed in the virtual game space will bemainly described with reference to the flow charts shown in FIGS. 18 to24, but other processing which are not directly relevant to the presentinvention will not be described in detail. In FIGS. 18 to 24, each stepexecuted by the CPU 30 is abbreviated to “S”. Concerning coordinate axesof the virtual game space which is shown in FIG. 25, the left-rightdirection (the horizontal direction along which a touchline extends)corresponds to X-direction, the up-down direction (the verticaldirection) corresponds to Y-direction, and the depth direction (thehorizontal direction along which a goal line extends) corresponds toZ-direction.

When power is applied to the game apparatus main body 5, the CPU 30 ofthe game apparatus main body 5 executes the boot program stored in theboot ROM (not shown) to initialize each unit such as the main memory 33and the like. Then, the game program stored in the optical disc 4 isread by the main memory 33, and the CPU 30 starts to execute the gameprogram. The flow charts shown in FIGS. 18 to 24 show game processingwhich is executed by the CPU 30 executing the game program after thecompletion of the above processing.

As shown in FIG. 18, the CPU 30 executes initial setting processing inthe game processing (a step 10), and advances the processing to the nextstep. For example, in the soccer game, player characters are dividedinto the team A and the team B, the game advances, and the player canoperate the player characters of one of the teams (referred to as a teamX). The player can select from the player mode in which the playerdirectly operates the player characters of the team X, and the coachmode in which the player comprehensively governs the player charactersof the team X. It is noted that both of the player mode and the coachmode do not have to be necessarily set, but only the player mode or onlythe coach mode may be set. Thus, in the above step 10, the CPU 30 setsand describes the controller identification number for the player modeof the team A, the controller identification number for the coach modeof the team A, the controller identification number for the player modeof the team B, and the controller identification number for the coachmode of the team B in the controller identification number data Db foridentifying and administering the respective controller 7 operated foreach team in each mode.

More specifically, a team (A or B) and a mode (player or coach) areselected in a menu screen displayed on the monitor 2 by operation of thecontroller 7 being used (each controller 7 in the case of a plurality ofthe controllers 7), and identification number data stored in thecontroller 7, by means of which this selection is performed, is set tothe corresponding controller identification number Db. For example, whenthe team A and the player mode are selected by operation of a controller7, the identification number of the controller 7 is set to thecontroller identification number Db1 for the player mode of the team A.Also, in the above step 10, the CPU 30 performs initial setting (settingof a game field, initial placement of each player character and the ballobject, and the like) prior to the start of the game, and updates eachdata stored in the main memory 33.

Next, the CPU 30 determines whether or not to start the game (a step11). A condition for starting the game includes, for example,satisfaction of conditions to make the game started, an operationperformed by the player for starting the game, and the like. The CPU 30repeats the processing of the above step 11 when not starting the game,and advances the processing to the next step 12 when starting the game.

Each processing at the steps 12 to 24 is repeated at the above gameprocessing cycle (e.g. every 1/60 sec.) for each of the teams A and B(the team X). Hereinafter, processing for each of the teams A and B isreferred to as processing for the team X.

At the step 12, the CPU 30 receives the operation information from thecontroller 7 (each controller 7 in the case of a plurality of thecontrollers 7), and individually stores the operation information in theoperation information Da for each controller identification number.Next, the CPU 30 refers to the controller identification number data Db,and determines whether or not a controller identification number Db forthe player mode of the team X is set (a step 13). When the controlleridentification number Db for the player mode of the team X is set, theCPU 30 advances the processing to the next step 14. On the other hand,when the controller identification number Db for the player mode of theteam X has not been set, the CPU 30 advances the processing to the nextstep 25.

At the step 14, the CPU 30 sets a movement vector Vmnpc of eachnon-player character NPC of the team X by using a predeterminedautomatic movement algorithm, stores the movement vectors Vmnpc in themovement vector data Dc. Then, the CPU 30 advances the processing to astep 21 through the subunit movement processing (the step 15), the passprocessing (the step 16), the first shot processing (the step 17), thesecond shot processing (the step 18), the temporary coach modeprocessing (the step 19), and the coach mode processing (the step 20).The detailed processing executed at the steps 15 to 20 will be describedlater.

For example, as shown in FIG. 25, it is assumed that the player operatesplayer characters PA which belong to the team A (shown by outlineshapes) in the player mode, and plays the soccer game against the team Bto which computer-controlled player characters PB (shown by black-filledshapes) belong. In this case, the player directly operates any one ofthe player characters PA (a player character PA1 in FIG. 25) as a playercharacter PC, the other player characters PA become non-playercharacters NPC. All of the player characters PB become non-playercharacters NPC. The team, the player character of which keeps the ballobject B, is an offensive team (in FIG. 25, the team A is an offensiveteam since the player character PA1 keeps the ball object B), and theother team is a defensive team (the team B in FIG. 25). When the team Xis a defensive team (when the team X is the team B) at the above step14, the CPU 30 sets, in accordance with a later-described posture vectorof the upper body of the player character (the player character PA1)keeping the ball object B, the movement vector of a player character (aplayer character PB1 in FIG. 25) of the team X (the team B) which islocated in a predetermined area which is set based on position data ofthe player character keeping the ball object B. More specifically, inthe present embodiment, the CPU 30 sets the movement vector of theplayer character located in the above predetermined area so as to have adirection based on “a vector A which is obtained by projecting theposture vector of the player character (PA1) keeping the ball object Bon a virtual horizontal plane (a vector having an X component equal toan X component of the posture vector, a Y component which is zero, and aZ component equal to a Z component of the posture vector)”. It is notedthat the movement vector of the player character, which is set by theabove automatic movement algorithm, may be corrected (typically added)by the vector A.

On the other hand, in the case of No at the step 13 (namely, when acontroller 7 for the player mode of the team X has not been set), at thestep 25, the CPU 30 sets the movement vectors Vmnpc of all of the playercharacters of the team X by using a predetermined automatic movementalgorithm, stores the movement vectors Vmnpc in the movement vector dataDc (namely, since the controller 7 for the player mode of the team X hasnot been set, all of the player characters of the team X becomenon-player characters NPC). It is noted that at the above step 25,similarly as at the above step 14, setting and correction of themovement vector of the player character located in the predeterminedarea are performed in accordance with the posture vector. Then, the CPU30 advances the processing to a step 21 through the coach modeprocessing (the step 20).

At the step 21, the CPU 30 moves each character and object in thevirtual game space based on each movement vector data described in themovement vector data Dc, and displays a game image on the monitor 2.Next, the CPU 30 decreases each movement vector described in themovement vector data Dc by a predetermined amount, and updates themovement vector data Dc (a step 22). Then, the CPU 30 executes otherprocessing executed in the soccer game, such as goal processing, foulprocessing, switching processing of the player character PC, and thelike (a step 23), and advances the processing to the next step.

Next, the CPU 30 determines whether or not to terminate the game (a step24). A condition for terminating the game processing include, forexample, satisfaction of conditions to make the game over, an operationperformed by the player for terminating the game, and the like. The CPU30 returns to and repeats the above step 12 when not terminating thegame, and terminates the processing of the flow chart when terminatingthe game.

With reference to FIG. 19, the following will describe the detailedoperation of the subunit movement processing at the step 15.

As shown in FIG. 19, the CPU 30 refers to the latest sub key data, whichis included in operation information transmitted from the subunit forthe player mode of the team X, from the operation information Da (a step41), and advances the processing to the next step. Here, at the abovestep 12, the operation information transmitted from each controller 7 isindividually stored in the operation information Da for the respectivecontroller identification number, and the controller identificationnumber for the player mode of the team X is described in the controllerID data Db. Thus, the CPU 30 can extract the operation information,which is transmitted from the subunit for the player mode, from theoperation information Da based on the controller identification numberfor the player mode of the team X described in the controller ID dataDb.

Next, the CPU 30 determines whether or not there is a directioninstruction input from the player based on the sub key data of thesubunit for the player mode, which is referred to at the step 41 (a step42). As described above, the subunit 76 is provided with the stick 78 a,and a direction instruction input can be performed by the playerinclining the inclinable stick 78 a. When there is a directioninstruction input from the player, the CPU 30 advances the processing tothe next step 43. On the other hand, when there is no directioninstruction input from the player, the CPU 30 advances the processing tothe next step 47.

At the step 43, the CPU 30 calculates a movement vector Vmpc of theplayer character PC of the team X based on the direction instructioninput from the subunit 76 for the player mode of the team X, updates themovement vector data Dc, and advances the processing to the next step.For example, as shown in FIG. 26, the movement vector Vmpc is set asdata indicating a movement direction and a movement velocity of theplayer character PC in the virtual game space. At the step 43, based onthe current movement vector Vmpc of the player character PC stored inthe movement vector data Dc, the CPU 30 calculates a new movement vectorVmpc having a direction in the virtual game space, which is determinedin accordance with the inclination direction of the stick 78 a, and amagnitude in accordance with the inclination angle of the stick 78 a.Through this processing, the movement direction and the movementvelocity of the player character PC of the team X, which is operated bythe player, in the virtual game space are controlled by operating thestick 78 a of the subunit 76 held by the player.

Next, the CPU 30 refers to the latest sub acceleration data, which isincluded in the operation information transmitted from the subunit forthe player mode of the team X, from the operation information Da (a step44). The CPU 30 determines whether or not a magnitude of acceleration inthe Z-axis positive direction (see FIG. 9) which is indicated by the subacceleration data is equal to or larger than a predetermined value (astep 45). When the magnitude of the acceleration in the Z-axis positivedirection is equal to or larger than the predetermined value, the CPU 30increases the magnitude of the movement vector Vmpc of the playercharacter PC of the team X, which is determined at the step 43 asdescribed above, by using a predetermined algorithm (e.g. increases themagnitude in accordance with the magnitude of the acceleration in theZ-axis positive direction or by a predetermined value, or multiplies themagnitude by n (n is a numeric value larger than one)), updates themovement vector data Dc of the player character PC (a step 46), andadvances the processing to the next step 47. Through the processing atthe step 46, the movement velocity of the player character PC, which isoperated by the player, in the virtual game space is accelerated by theplayer inclining the subunit 76 forward (namely, inclining the subunit76 so that the Z-axis positive direction is directed to a lower positionthan a Z-axis negative direction). On the other hand, when the magnitudeof the acceleration in the Z-axis positive direction is smaller than thepredetermined value, the CPU 30 advances the processing to the step 47.It is noted that it may be determined at the step 45 whether or not amagnitude of acceleration in the Z-axis negative direction is smallerthan a predetermined value (a minus value). When the determination isYes, the magnitude of the movement vector Vmpc of the player characterPC of the team X is decreased by a predetermined algorithm (e.g.decreased in accordance with the magnitude of the acceleration in theZ-axis negative direction or by a predetermined value, or multiplied bym (m is a numeric value smaller than one)), and the movement vector dataDc of the player character PC is updated.

At the step 47, the CPU 30 refers to the latest sub acceleration data,which is included in the operation information transmitted from thesubunit for the player mode of the team X, from the operationinformation Da. Then, the CPU 30 calculates a posture vector Vc of theplayer character PC of the team X based on the sub acceleration data,updates the posture vector data Dd, and advances the processing to thenext step.

For example, as shown in FIG. 26, the posture vector Vc is set as dataindicating a posture of the player character PC in the virtual gamespace. The posture vector Vc is set based on the player charactercoordinate system. In the player character coordinate system, thefront-rear direction of the player character PC in the virtual gamespace is a Zp-axis direction (typically, the direction of the movementvector Vmpc of the player character PC is the Zp-axis direction, or inthe case where a movement direction vector of the player character PCand a facing direction vector (a forward vector) of the player characterPC are controlled independently, the direction of the facing directionvector of the player character PC may correspond to the Zp-axisdirection), and the forward direction of the player character PC is aZp-axis positive direction. Also, the left-right direction of the playercharacter PC in the virtual game space is an Xp-axis direction, and therightward direction seen from the player character PC is an Xp-axispositive direction. Further, the vertical direction of the playercharacter PC in the virtual game space is a Yp-axis direction, and theupward direction is a Yp-axis positive direction. The posture vector Vcis set as vector data which is directed from the waist of the playercharacter PC toward its head. The posture vector Vc is typically vectordata in the player character coordinate system.

At a step 48, the CPU 30 calculates the posture vector Vc so as to causeacceleration in the X-axis direction (see FIG. 9) which is indicated bythe sub acceleration data to correspond to the Xp-axis direction in theplayer character coordinate system, so as to cause acceleration in theY-axis direction which is indicated by the sub acceleration data tocorrespond to the Yp-axis direction in the player character coordinatesystem, and so as to cause acceleration in the Z-axis direction which isindicated by the sub acceleration data to correspond to the Zp-axisdirection in the player character coordinate system.

For example, at the step 48, as an example, the posture of the playercharacter PC is controlled in accordance with the inclination of thesubunit 76. In this case, more specifically, a value of the posturevector data in the Xp-axis direction in the player character coordinatesystem is determined in accordance with (typically, so as to beproportional to) a value of the acceleration in the X-axis directionwhich is indicated by the sub acceleration data, a value of the posturevector data in the Yp-axis direction in the player character coordinatesystem is determined in accordance with (typically, so as to beproportional to) a value obtained by inverting a positive or negativesign of a value of the acceleration in the Y-axis direction which isindicated by the sub acceleration data, and a value of the posturevector data in the Zp-axis direction in the player character coordinatesystem is determined in accordance with (typically, so as to beproportional to) a value of the acceleration in the Z-axis directionwhich is indicated by the sub acceleration data (a commonproportionality constant is typically used for each axis direction butit is not limited thereto). More specifically, for example, the posturevector data is determined so as to satisfy the following equation, thevalue of the acceleration in the X-axis direction which is indicated bythe sub acceleration data: the value of the acceleration in the Y-axisdirection which is indicated by the sub acceleration data: the value ofthe acceleration in the Z-axis direction which is indicated by the subacceleration data=the value of the posture vector data in the Xp-axisdirection in the player character coordinate system: the value of theposture vector data in the Yp-axis direction in the player charactercoordinate system: the value of the posture vector data in the Zp-axisdirection in the player character coordinate system. Or, the value ofthe posture vector data in the Xp-axis direction in the player charactercoordinate system may be determined in accordance with the value of theacceleration in the X-axis direction which is indicated by the subacceleration data, the value of the posture vector data in the Zp-axisdirection in the player character coordinate system May be determined inaccordance with the value of the acceleration in the Z-axis directionwhich is indicated by the sub acceleration data, and the value of theposture vector data in the Yp-axis direction in the player charactercoordinate system may be constant.

For example, at the step 48, as an example, the posture of the playercharacter PC is controlled in accordance with movement (parallelmovement) of the subunit 76. For example, when the player moves thesubunit 76 rightward, acceleration is generated in the subunit 76 in theX-axis positive direction (when the player moves the subunit 76rightward, acceleration in the X-axis positive direction outputted atthe beginning of the movement may be detected, or acceleration in theX-axis negative direction outputted at the end of the movement may bedetected). The acceleration sensor 761 provided in the subunit 76detects the acceleration in the X-axis positive direction, and thesubunit 76 transmits sub acceleration data indicating the accelerationto the game apparatus main body 5. Then, in accordance with theacceleration in the X-axis positive direction which is indicated by thereceived sub acceleration data, the CPU 30 adds to the posture vector Vca vector having the Xp-axis positive direction and the same magnitude asthe acceleration, and calculates a new posture vector Vc. The upper bodyof the player character PC is inclined in the Xp-axis positive directionin accordance with the newly calculated posture vector Vc. When theplayer moves the subunit 76 forward, acceleration in the Z-axis positivedirection is generated in the subunit 76. The acceleration sensor 761provided in the subunit 76 detects the acceleration in the Z-axispositive direction, and the subunit 76 transmits sub acceleration dataindicating the acceleration to the game apparatus main body 5. Then, inaccordance with the acceleration in the Z-axis positive direction whichis indicated by the received sub acceleration data, the CPU 30 adds tothe posture vector Vc a vector having the Zp-axis positive direction andthe same magnitude as the acceleration, and calculates a new posturevector Vc. The upper body of the player character PC is inclined in theZp-axis positive direction in accordance with the newly calculatedposture vector Vc. Through this processing at the step 48, the postureof the player character PC, which is operated by the player, in thevirtual game space changes in accordance with the movement of thesubunit 76 which is made by the player.

At the steps 14 and 25, the movement vector of the player character(e.g. the player character PB1 shown in FIG. 25) of the opponent teamwhich is located in the predetermined area of the player character PCkeeping the ball object B is corrected in accordance with the posturevector Vc of the player character PC. More specifically, sincecorrection is made by adding to the movement vector of the playercharacter of the opponent team a vector which is obtained by projectingthe posture vector Vc on the virtual horizontal plane, a direction inwhich the player character is to move is changed to the direction inwhich the posture vector Vc is inclined with respect to the verticaldirection in the virtual game space. In other words, the playercharacter of the opponent team moves in accordance with the posture ofthe player character PC which is changed by the movement of the subunit76 made by the player, namely, a movement of the opponent player whichis caused by the influence of a feint during a dribble is expressed.

Referring back to FIG. 19, after the processing at the step 48, the CPU30 determines whether or not any of the player characters which belongto the team X keeps the ball object B (a step 49). When any of theplayer characters which belong to the team X keeps the ball object B(namely, when the team X is the offensive team), the CPU 30 advances theprocessing to the next step 50. On the other hand, when none of theplayer characters which belong to the team X keeps the ball object B,the CPU 30 advances the processing to the next step 19.

At the step 50, the CPU 30 determines whether or not the magnitude (theabsolute value) of the acceleration in the X-axis direction, which isindicated by the latest sub acceleration data which is referred to atthe step 47, is equal to or larger than a predetermined acceleration A1(e.g. the predetermined acceleration A1 may be 0.5 G or greater but maybe any value). When the magnitude of the acceleration in the X-axisdirection is equal to or larger than the predetermined acceleration A1,the CPU 30 advances the processing to the next step 51. On the otherhand, when the magnitude of the acceleration in the X-axis direction issmaller than the predetermined acceleration A1, the CPU 30 terminatesthe processing of this subroutine, and advances the processing to thestep 16.

At the step 51, the CPU 30 refers to a history of the sub accelerationdata, which is included in the operation information transmitted fromthe subunit for the player mode of the team X, from the operationinformation Da, and determines whether or not the direction of theacceleration in the X-axis direction, which is indicated by the historyof the sub acceleration data, is inverted n times (n is an integernumber equal to or greater than one) within a last predetermined timeperiod by a magnitude equal to or larger than the predeterminedacceleration A1. For example, referring to the history of the subacceleration data, whether or not “within the last predetermined timeperiod, there is data which has acceleration with a positive or negativesign opposite of that of the acceleration indicated by the latest subacceleration data (data having the acceleration which is determined tobe equal to or larger than the acceleration A1 at the step 50) and withan absolute value equal to or larger than the acceleration A1” isdetermined (in the case of n=1). Or, whether or not “within the lastpredetermined time period, there is data which has acceleration with apositive or negative sign opposite of that of the acceleration indicatedby the latest sub acceleration data and with an absolute value equal toor larger than the acceleration A1, and before this data, there is datawhich has acceleration with a positive or negative sign opposite of thatof the acceleration of this data and with an absolute value equal to orlarger than the acceleration A1” is determined (in the case of n=2).Alternatively, whether or not the direction of the acceleration in theX-axis direction which is indicated by the history of the subacceleration data is inverted n times by a magnitude equal to or largerthan the predetermined acceleration A1 and each interval of theinversion is equal to or shorter than a predetermined time period may bedetermined.

When the direction of the acceleration in the X-axis direction isinverted within the predetermined time period, the CPU 30 adds to themovement vector Vmpc of the player character PC of the team X a vectorhaving the Xp-axis direction and a predetermined magnitude (Themagnitude of the vector may be fixed or proportional to the magnitude ofthe acceleration in the X-axis direction which is indicated by the subacceleration data. The direction of the vector is the Xp-axis positivedirection when the acceleration in the X-axis direction is positive, andthe Xp-axis negative direction when the acceleration in the X-axisdirection is negative.) to produce a new movement vector Vmpc (a step52). The CPU 30 terminates the processing of this subroutine, andadvances the processing to the step 16. Through the processing at thesteps 50 to 52, the movement of the player character PC, which isoperated by the player, in the virtual game space is controlled so thatthe player character zigzags by the player shaking the subunit 76 in theleft-right direction (namely, in the X-axis direction) On the otherhand, when the direction of the acceleration in the X-axis direction isnot inverted within the predetermined time period, the CPU 30 terminatesthe processing of this subroutine, and advances the processing to thestep 16.

The above subunit movement processing is executed as exemplified below.In a first example, when the magnitude of the acceleration (the absolutevalue) in the X-axis direction which is indicated by the latest subacceleration data is equal to or smaller than a predetermined value(e.g. gravitational acceleration (1.0 G)), at the step 48, the posturevector is controlled by using the acceleration in the X-axis directionwhich is indicated by the latest sub acceleration data. In a secondexample, when the magnitude of the acceleration (the absolute value) inthe X-axis direction which is indicated by the latest sub accelerationdata is equal to or smaller than the predetermined value, at the step48, motion control is performed so that the player character PCsubstantially moves or shakes its upper body or its whole body (so as toexpress a feint).

In addition, the first example of the subunit movement processing may beperformed as exemplified below. In a third example, when the magnitude(the absolute value) of the acceleration in the X-axis direction whichis indicated by the latest sub acceleration data is equal to or smallerthan the predetermined value and the direction of the acceleration inthe X-axis direction which is indicated by the history of the subacceleration data is inverted n times (n is an integer number equal toor greater than one) within the last predetermined time period by amagnitude equal to or larger than the acceleration A1, a vector havingthe Xp-axis direction and a predetermined magnitude is added to themovement vector Vmpc of the player character PC to produce a newmovement vector Vmpc. In a fourth example, when the magnitude (theabsolute value) of the acceleration in the X-axis direction which isindicated by the latest sub acceleration data is equal to or smallerthan a predetermined value A2 and it is a case other than the thirdexample, at the step 48, the posture vector is controlled by using theacceleration in the X-axis direction which is indicated by the latestsub acceleration data. In the case of the first or fourth example, themovement control may not be performed so that “the player character ofthe opponent team which is located in the predetermined area of theplayer character PC” is influenced by a feint of the player character PCas described at the steps 14 and 25.

As described above, in the subunit movement processing at the step 15,the posture of the player character PC is controlled in accordance withthe acceleration data which is outputted from the acceleration sensor761 provided in the subunit 76 while the movement direction of theplayer character PC (additionally, the movement velocity) is controlledby means of a direction instruction section (the stick 78 a) provided inthe subunit 76. In other words, the player can input movement directioncontrol and posture control of the player character PC with one handefficiently and intuitively.

Further, in the subunit movement processing, the movement direction ofthe player character PC is corrected in accordance with the accelerationdata which is outputted from the acceleration sensor 761 provided in thesubunit 76 while (additionally, the movement velocity) being controlledby means of the direction instruction section (the stick 78 a) providedin the subunit 76. In other words, the player can input the movementdirection control of the player character PC and its correction with onehand efficiently and intuitively. More specifically, this processing isperformed as follows. The direction of the movement vector of the playercharacter PC is determined in accordance with the inclination directionof the stick 78 a. In other words, for example, when the directioninstruction means is inclined upward, the player character PC moves in aZ-axis positive direction in a local coordinate system of the playercharacter PC (the forward direction of the player character PC, or thedirection of an advance direction vector of the player character PC).When the direction instruction means is inclined downward, the playercharacter PC moves in a Z-axis negative direction in the localcoordinate system of the player character PC. When the directioninstruction means is inclined rightward, the player character PC movesin an X-axis positive direction in the local coordinate system. When thedirection instruction means is inclined leftward, the player characterPC moves in an X-axis negative direction in the local coordinate system.The magnitude of the movement vector may be a fixed value or may bedetermined in accordance with the inclination amount of the stick 78 a.The movement direction of the player character PC can be corrected inaccordance with the output of the acceleration sensor 761 as exemplifiedbelow.

In a first example of correcting the movement direction of the playercharacter PC, an output vector of the acceleration sensor 761, in whichX-axis, Y-axis, and Z-axis of the acceleration sensor 761 correspond toX-axis, Y-axis, and Z-axis of a predetermined coordinate system (anadvance direction and two directions perpendicular to the advancedirection), respectively, is converted into a direction vector in thevirtual game space. The direction vector is added as a correction vectorto the movement vector which is obtained in accordance with theinclination of the stick 78 a. The magnitude of the correction vectormay be a fixed value or may be determined in accordance with themagnitude of the output vector.

In a second example of correcting the movement direction of the playercharacter PC, when an output value of the acceleration sensor 761 in apredetermined direction (e.g. the X-axis direction) is equal to orlarger than a predetermined value, a correction vector having thecorresponding direction (e.g. the X-axis direction) in a predeterminedcoordinate system is added to the movement vector which is obtained inaccordance with the inclination of the stick 78 a.

In a third example of correcting the movement direction of the playercharacter PC, a correction vector having the corresponding direction(e.g. the X-axis direction) in a predetermined coordinate system and amagnitude in accordance with the output value in a predetermineddirection (e.g. the X-axis direction) of the acceleration sensor 761 isadded to the movement vector which is obtained in accordance with theinclination of the stick 78 a.

It is noted that the second and third examples of correcting themovement direction of the player character PC are performed for aplurality of directions. In other words, for example, in the thirdexample, a correction vector having the X-axis direction in thepredetermined coordinate system and a magnitude in accordance with theoutput value in the X-axis direction of the acceleration sensor 761 maybe added to the movement vector which is obtained in accordance with theinclination of the stick 78 a, and further a correction vector havingthe Y-axis direction in the predetermined coordinate system and amagnitude in accordance with the output value of the acceleration sensor761 in the Y-axis direction may be added thereto.

The predetermined coordinate system may be the local coordinate systemof the player character PC, the coordinate system of the virtual gamespace (in this case, the direction vector is typically a virtualvertical direction or a virtual horizontal direction), a cameracoordinate system, a coordinate system which is obtained by projectingthe camera coordinate system on the virtual horizontal plane, or acoordinate system based on a movement direction which is determined bythe direction instruction section (e.g. a direction in which thecorrection vector is perpendicular to the movement direction).

Further, in the subunit movement processing, the movement velocity ofthe player character PC is controlled while the movement direction ofthe player character PC is controlled by means of the directioninstruction section provided in the subunit 76. In other words, theplayer can input the movement direction control and the movementvelocity control of the player character PC with one hand efficientlyand intuitively. In this case, this processing is performed as follows.The movement direction of the player character PC is determined inaccordance with the inclination direction of the stick 78 a. Themovement velocity (the absolute value) of the player character PC can bedetermined in accordance with the output of the acceleration sensor 761as exemplified below.

In a first example of determining the movement velocity of the playercharacter PC, when the absolute value of the output vector of theacceleration sensor 761 is equal to or larger than a predeterminedvalue, the movement velocity is caused to become a predeterminedvelocity. When the absolute value of the output vector of theacceleration sensor 761 is smaller than the predetermined value, themovement velocity is caused to become zero.

In a second example of determining the movement velocity of the playercharacter PC, the movement velocity is caused to become a velocity inaccordance with the absolute value of the output vector of theacceleration sensor 761 (the movement velocity is increased as theabsolute value increases). At this time, when a predetermined component(e.g. a Z-axis direction component) of the output vector is positive,the player character PC may move in a movement direction in accordancewith the inclination direction of the stick 78 a. When the predeterminedcomponent of the output vector is negative, the player character PC maymove in a direction opposite to the movement direction in accordancewith the inclination direction of the stick 78 a. Alternatively, onlywhen the output component in the predetermined direction is positive,the movement velocity may be determined as described in the secondexample.

In a third example of determining the movement velocity of the playercharacter PC, an output component of the acceleration sensor 761 in apredetermined direction (e.g. an output value in the Z-axis direction)is equal to or larger than a predetermined value, the movement velocityis caused to become a predetermined velocity. When the output componentis smaller than the predetermined value, the movement velocity is causedto become zero.

In a fourth example of determining the movement velocity of the playercharacter PC, the movement velocity is caused to become a velocity inaccordance with the absolute value of an output component of theacceleration sensor 761 in a predetermined direction (e.g. an outputvalue in the Z-axis direction).

It is noted that in the third and fourth examples of determining themovement velocity of the player character PC, the player character PCmay move in a movement direction in accordance with the inclinationangle of the stick 78 a when the output component in the predetermineddirection is positive, and the player character PC may move in adirection opposite to the movement direction when the output componentin the predetermined direction is negative. Alternatively, only when theoutput component in the predetermined direction is positive, themovement velocity may be determined as described in the third and fourthexamples.

In a fifth example of determining the movement velocity of the playercharacter PC, when an output component of the acceleration sensor 761 ina direction which corresponds to the inclination direction of the stick78 a (an output value in the Z-axis direction when the inclinationdirection of the stick 78 a is the upward direction) is equal to orlarger than a predetermined value, the movement velocity is caused tobecome a predetermined velocity. When the output component is smallerthan the predetermined value, the movement velocity is caused to becomezero.

In a sixth example of determining the movement velocity of the playercharacter PC, the movement velocity is caused to become a velocity inaccordance with the absolute value of an output component of theacceleration sensor 761 in a direction which corresponds to theinclination direction of the stick 78 a (an output value in the Z-axisdirection when the inclination direction of the stick 78 a is the upwarddirection, an output value in the X-axis direction when the inclinationdirection of the stick 78 a is the rightward direction, or the like).

It is noted that in the fifth and sixth examples of determining themovement velocity of the player character PC, the player character PCmay move in a movement direction in accordance with the inclinationdirection of the stick 78 a when the output component in thecorresponding direction is positive, and the player character PC maymove in a direction opposite to the movement direction when the outputcomponent in the corresponding direction is negative.

Further, in the subunit movement processing, the correction of themovement velocity is controlled while the movement direction and themovement velocity of the player character PC are controlled by means ofthe direction instruction section (the stick 78 a) provided in thesubunit 76. In other words, the player can input the movement directioncontrol of the player character PC and the correction control of themovement velocity with one hand efficiently and intuitively. In thiscase, the processing is performed as follows. The movement direction ofthe player character PC is determined in accordance with the inclinationdirection of the stick 78 a, and the movement velocity of the playercharacter PC is determined in accordance with the inclination amount ofthe stick 78 a. The movement velocity of the player character PC can becorrected in accordance with the output of the acceleration sensor 761as exemplified below.

In a first example of correcting the movement velocity of the playercharacter PC, when the absolute value of the output vector of theacceleration sensor 761 is equal to or larger than a predeterminedvalue, a movement velocity in accordance with the inclination amount ofthe stick 78 a is used as the movement velocity of the player characterPC. When the absolute value of the output vector of the accelerationsensor 761 is smaller than the predetermined value, the movementvelocity of the player character PC is corrected to zero.

In a second example of correcting the movement velocity of the playercharacter PC, when the absolute value of the output vector of theacceleration sensor 761 is equal to or smaller than a predeterminedvalue, a movement velocity in accordance with the inclination amount ofthe stick 78 a is used as the movement velocity of the player characterPC. When the absolute value of the output vector of the accelerationsensor 761 is larger than the predetermined value, the movement velocityof the player character PC is increased (a predetermined value is addedthereto, it is multiplied by n (n>1), or the like).

In a third example of correcting the movement velocity of the playercharacter PC, in accordance with the absolute value of the output vectorof the acceleration sensor 761, a movement velocity in accordance withthe inclination amount of the stick 78 a is added to the movementvelocity of the player character PC (so that the increase amountincreases with an increase in the absolute value).

It is noted that in the second and third examples of correcting themovement velocity of the player character PC, the player character PCmay move in a movement direction in accordance with the inclinationdirection of the stick 78 a when the predetermined component of theoutput vector (e.g. a Z-axis direction component) is positive, and theplayer character PC may move in a direction opposite to the movementdirection in accordance with the inclination angle of the stick 78 awhen the predetermined component of the output vector is negative.Alternatively, only when the output component in the predetermineddirection is positive, the movement velocity may be corrected asdescribed in the second and third examples.

In a fourth example of correcting the movement velocity of the playercharacter PC, when an output component of the acceleration sensor 761 ina predetermined direction (e.g. an output value in the Z-axis direction)is equal to or larger than a predetermined value, a movement velocity inaccordance with the inclination angle of the stick 78 a is used as themovement velocity of the player character PC. When the output componentin the predetermined direction is smaller than the predetermined value,the movement velocity of the player character PC is corrected to zero.

In a fifth example of correcting the movement velocity of the playercharacter PC, an output component of the acceleration sensor 761 in apredetermined direction (e.g. an output value in the Z-axis direction)is equal to or smaller than a predetermined value, a movement velocityin accordance with the inclination angle of stick 78 a is used as themovement velocity of the player character PC. When the output componentin the predetermined direction is larger than the predetermined value,the movement velocity of the player character PC is increased. It isnoted that only when the output component in the predetermined directionis positive, the movement velocity may be corrected as described in thefifth example. When the output component in the predetermined directionis negative, the movement velocity of the player character PC may bedecreased by using a movement velocity in accordance with theinclination amount of the stick 78 a.

In a sixth example of correcting the movement velocity of the playercharacter PC, in accordance with the magnitude of an output component ofthe acceleration sensor 761 in a predetermined direction (e.g. an outputvalue in the Z-axis direction), the movement velocity of the playercharacter PC is increased by using a movement velocity in accordancewith the inclination amount of the stick 78 a (so that the increaseamount increases with an increase in the absolute value). It is notedthat only when the output component in the predetermined direction ispositive, the movement velocity may be corrected as described in thesixth example. When the output component in the predetermined directionis negative, the movement velocity of the player character PC may bedecreased by using a movement velocity in accordance with theinclination amount of the stick 78 a.

In a seventh example of correcting the movement velocity of the playercharacter PC, when an output component of the acceleration sensor 761 ina direction which corresponds to the inclination direction of the stick78 a (e.g. an output value in the Z-axis positive direction when theinclination direction of the stick 78 a is the upward direction, anoutput value in the X-axis positive direction when the inclinationdirection of the stick 78 a is the rightward direction, or the like) isequal to or larger than a predetermined value, a movement velocity inaccordance with the inclination amount of the stick 78 a is used as themovement velocity of the player character PC. When the output componentis smaller than the predetermined value, the movement velocity of theplayer character PC is corrected to zero.

In an eighth example of correcting the movement velocity of the playercharacter PC, when an output component of the acceleration sensor 761 ina direction which corresponds to the inclination direction of the stick78 a is equal to or smaller than a predetermined value, a movementvelocity in accordance with the inclination amount of the stick 78 a isused as the movement velocity of the player character PC. When theoutput component is larger than the predetermined value, the movementvelocity of the player character PC is increased.

In a ninth example of correcting the movement velocity of the playercharacter PC, in accordance with the magnitude of an output component ofthe acceleration sensor 761 in a direction which corresponds to theinclination direction of the stick 78 a, the movement velocity of theplayer character PC is increased by using a movement velocity inaccordance with the inclination amount of the stick 78 a (so that theincrease amount increases with an increase in the absolute value).

It is noted that in the eighth and ninth examples of correcting themovement velocity of the player character PC, only when the outputcomponent in the predetermined direction is positive, the movementvelocity may be corrected as described in the eighth and ninth examples.Alternatively, the player character PC may move in a movement directionin accordance with the inclination direction of the stick 78 a when theoutput value in the corresponding direction is positive, and the playercharacter PC may move in a direction opposite to the movement directionwhen the output value in the corresponding direction is negative (whenthere is an output in a direction opposite to the correspondingdirection).

Further, in the subunit movement processing, a motion of the playercharacter PC is controlled (e.g. the above feint motion) while themovement direction of the player character PC (additionally, themovement velocity) is controlled by means of the direction instructionsection (the stick 78 a) provided in the subunit 76. In other words, theplayer can input the movement direction control and the motion controlof the player character PC with one hand efficiently and intuitively.This is achieved by controlling the player character PC so as to performa predetermined motion when the output of the acceleration sensor 761satisfies a predetermined condition. Further, in the case of performingconcurrently at least one of the above examples of the subunit movementprocessing and processing for controlling the player character PC so asto perform a predetermined motion when the output of the accelerationsensor 761 satisfies a predetermined condition, at least the one of theabove examples of the subunit movement processing may be performed whenan output value of the acceleration sensor 761 is equal to or smallerthan a predetermined value, and the processing for controlling theplayer character PC so as to perform the predetermined motion may beperformed when the output value of the acceleration sensor 761 is largerthan the predetermined value.

Further, in the subunit movement processing, the position of the playercharacter PC which is determined in accordance with an operation of thedirection instruction section (the stick 78 a) provided in the subunit76 may be determined in a different manner. FIG. 30 is a flow chart of asubroutine showing a detailed operation of another example of thesubunit movement processing. The other example of the subunit movementprocessing shown in FIG. 30 differs from the subunit movement processingshown in FIG. 19 in processing executed between the steps 43 and 44, theprocessing at the step 46, and the processing at the step 52. Thefollowing will describe the processing different from the subunitmovement processing shown in FIG. 19, the detailed description of thesame processing as the subunit movement processing shown in FIG. 19 willbe omitted. In the other example of the subunit movement processing,position data (hereinafter, referred to as PC position data) indicatingthe position of the player character PC in the virtual game space isstored in an area (not shown) of the main memory 33.

As shown in FIG. 30, the CPU 30 updates the PC position data in the mainmemory 33 based on the movement vector Vmpc which is calculated at thestep 43 based on the direction instruction input (a step 171), andadvances the processing to the step 44. For example, in the processingat the step 171, a position after movement by the movement vector Vmpcis calculated, and the last PC position data stored in the main memory33, which indicates the position in the virtual game space, is updatedto PC position data indicating the calculated position.

When the acceleration in the Z-axis positive direction is equal to orlarger than a predetermined value at the step 45, the CPU 30 calculatesa displacement vector in accordance with the acceleration data Da4 (astep 172), and advances the processing to the step 47. A method ofcalculating the displacement vector at the step 172 is the same as theabove method of calculating the correction vector at the step 46(including the above-described variations).

When the direction of the acceleration in the X-axis direction isinverted within the predetermined time period at the step 51, the CPU 30calculates a displacement vector in accordance with the accelerationdata Da4 (a step 173), and terminates the processing of this subroutine.A method of calculating the displacement vector at the step 173 is thesame as the above method of calculating the correction vector at thestep 52 (including the above-described variations).

In the processing at the step 21 shown in FIG. 18, a sum vector which isobtained by adding the displacement vector calculated at the step 172and the displacement vector calculated at the step 173 is calculated,the player character PC is moved in the virtual game space to a positionto which the position in the virtual game space which is indicated bythe PC position data is displaced by the sum vector, and a game image isdisplayed on the monitor 2. However, at the step 21, the PC positiondata stored in the main memory 33 is not updated. If such processing isperformed, a basic position (the position indicated by the PC positiondata) of the player character PC in the virtual game space is moved by adirection instruction input. In accordance with the acceleration dataoutputted from the acceleration sensor 701, the player character PC ismoved to a position to which the basic position is temporarily displacedto, and displayed. Through such processing, operability is obtainedwithout an uncomfortable feeling.

With reference to FIG. 20, the following will describe in detail theoperation of the pass processing at the step 16.

As shown in FIG. 20, the CPU 30 refers to the latest core key data,which is included in the operation information transmitted from the coreunit for the player mode of the team X, from the operation informationDa (a step 81). Next, based on the core key data which is referred to atthe step 81, the CPU 30 determines whether or not the player pressesonly the operation section 72 d (the A button) of the core unit 70 (astep 82). When the player presses only the A button, the CPU 30 advancesthe processing to the next step 83. On the other hand, when the playerdoes not press the A button or concurrently presses the A button andanother button (e.g. the B button), the CPU 30 terminates the processingof this subroutine, and advances the processing to the step 17.

At the step 83, the CPU 30 refers to the latest first coordinate dataDa1 and second coordinate data Da2, which are included in the operationinformation transmitted from the core unit for the player mode of theteam X, from the operation information Da (the step 83). Next, the CPU30 calculates pointed coordinates which correspond to the firstcoordinate data Da1 and the second coordinate data Da2 which arereferred to at the step 83, and a position which corresponds to thepointed coordinates, and updates the pointed coordinate data De and thevirtual space position coordinate data Df which correspond to the coreunit for the player mode of the team X (a step 84). The CPU 30 advancesthe processing to the next step. The following will describe an exampleof calculating the pointed coordinates and the virtual space position byusing the coordinate data.

The CPU 30 calculates direction data from the first coordinate data Da1to the second coordinate data Da2. More specifically, the CPU 30 refersto the first coordinate data Da1 and the second coordinate data Da2, andcalculates a vector having a starting point which is the position of thefirst coordinate data Da1, and an end point which is the position of thesecond coordinate data Da2. The CPU 30 stores data of the calculatedvector as the direction data in the main memory 33. By using adifference between the direction data and a predetermined referencedirection, rotation of the core unit 70 about a direction perpendicularto the imaging area of the core unit 70 can be calculated.

The CPU 30 calculates midpoint data indicating the midpoint between thefirst coordinate data Da1 and the second coordinate data Da2. Morespecifically, the CPU 30 refers to the first coordinate data Da1 and thesecond coordinate data Da2, and calculates coordinates of the midpoint.The CPU 30 stores data of the calculated coordinates of the midpoint inthe main memory 33. The midpoint data indicates the position of thetarget image (the markers 8L and 8R) in the taken image. By using adifference between the midpoint data and a predetermined referenceposition, a change in the image position caused by a change in theposition of the core unit 70 can be calculated.

Here, a positional relation between the markers 8L and 8R, the displayscreen of the monitor 2, and the core unit 70 will be considered. Forexample, it is assumed that the two markers 8L and 8R are provided onthe top surface of the monitor 2 (see FIG. 1), and the player points thecore unit 70 at the center of the display screen of the monitor 2 withthe top surface thereof facing in the upward direction (an image of thecenter of the display screen is taken at the center of an taken image ofthe imaging information calculation section 74). At this time, in thetaken image of the imaging information calculation section 74, themidpoint of the target image (the midpoint between the markers 8L and8R) does not coincide with to the pointed position (the center of thedisplay screen). More specifically, the position of the target image inthe taken image is located above the center of the taken image. Areference position is set so that when the target image is located insuch a position, the center of the display screen is assumed to bepointed at. Meanwhile, the position of the target image in the takenimage moves in accordance with the movement of the core unit 70 (theirmovement directions are opposite to each other). Thus, by performingprocessing of moving the pointed position on the display screen inaccordance with the movement of the position of the target image in thetaken image, the display screen reference position of the at which thecore unit 70 is pointed (position coordinates in the screen coordinatesystem) can be calculated. Here, concerning the setting of the referenceposition, the player may in advance point at a predetermined position onthe display screen, and the position of the target image at this time isstored so as to be associated with the predetermined position. When thepositional relation between the target image and the display screen isfixed, the reference position may be set in advance. When the markers 8Land 8R are provided independently of the monitor 2 and disposed near themonitor 2 (above or below the monitor 2, or the like), the player may becaused to input the position of the markers 8L and 8R with respect tothe monitor prior to the start of the game (e.g. the player may becaused to select from choices such as disposing the markers 8L and 8Rabove or below the monitor 2, and the like). Or, reference position datafor the case where the markers 8L and 8R are disposed above the monitor2 and reference position data for the case where the markers 8L and 8Rare disposed below the monitor 2 may be stored in the optical disc 4, abuilt-in involatile memory of the game apparatus 3, or the like, and maybe selected in use. Such position coordinates in the screen coordinatesystem are calculated by linear transformation using a function ofcalculating the display screen reference coordinates (pointedcoordinates) of the monitor 2 from the midpoint data. This functionconverts the values of the midpoint coordinates which are calculatedfrom a taken image into coordinates indicating a position on the displayscreen (position coordinates in the screen coordinate system), at whichthe core unit 70 is pointed when the image is taken. By using thisfunction, pointed coordinates where the display screen is a referencecan be calculated from the midpoint coordinates.

However, when the player points the core unit 70 at the center of thedisplay screen of the monitor 2 with the top surface thereof facing in adirection (e.g. a rightward direction) other than the upward direction,the position of the target image in the taken image is shifted from thecenter of the taken image in a direction (e.g. a leftward direction)other than the upward direction. In other words, due to the inclinationof the core unit 70, the movement direction of the core unit 70 does notcorrespond to the movement direction of the pointed display screenreference position. Here, the midpoint data is corrected based on thedirection data. Specifically, the midpoint data is corrected to midpointcoordinates when it is assumed that the top surface of the core unit 70faces in the upward direction. More specifically, when the referenceposition is set, a reference for the direction data is also set. Themidpoint data is corrected so that coordinates indicated by the midpointdata are rotated and shifted about the center of the taken image by anamount corresponding to an angle difference between the direction dataand the reference direction. Then, the corrected midpoint data is usedto calculate the pointed coordinates as described above.

When the calculated pointed coordinates in the screen coordinate systemare converted into virtual space coordinates indicating a position inthe virtual game space (a virtual space position), the positionindicated by the pointed coordinates may be further converted into aposition in the virtual game space which corresponds to the position inthe screen coordinate system. The position in the virtual game spacewhich corresponds to the position in the screen coordinate system is aposition in the virtual game space which is displayed on the displayscreen of the monitor 2 (e.g. a position at which perspective projectionis performed), a position indicated by three-dimensional coordinatevalues in the virtual game space which are designated directly fromposition coordinates in the screen coordinate system, or the like.

An essential principle for processing of calculating the pointedcoordinates is to calculate a displacement amount of pointedtwo-dimensional coordinates from a predetermined reference positionbased on a change in the position of the target image by a movement ofthe core unit 70, and to set coordinates. Thus, the position coordinatesin the screen coordinate system can be widely used for an input of othertwo-dimensional coordinates. For example, the position coordinates inthe screen coordinate system can be used directly as values of anx-coordinate and a y-coordinate in a world coordinate system. In thiscase, independently of the display screen of the monitor 2, calculationprocessing may be performed so as to cause movement of the target imageto correspond to movement of the x-coordinate and the y-coordinate inthe world coordinate system from the reference position. In the casewhere a two-dimensional game image is displayed on the monitor 2, theposition coordinates in the screen coordinate system can be useddirectly as values of an x-coordinate and a y-coordinate in atwo-dimensional game coordinate system.

After the processing at the step 84, the CPU 30 determines whether ornot the virtual space position in the virtual game space whichcorresponds to the calculated pointed coordinates is on a virtual field(a step 85). For example, the virtual field is a virtual planeindicating a ground in a game space, which includes a virtual soccerfield. When the virtual space position is on the virtual field, the CPU30 advances the processing to the next step 90. On the other hand, whenthe virtual space position is not on the virtual field, the CPU 30determines whether or not the pointed coordinates in the screencoordinate system are shifted upward or downward from the display areaof the monitor 2 (a step 86) and whether or not the pointed coordinatesin the screen coordinate system is shifted leftward or rightward fromthe display area of the monitor 2 (a step 87). When the pointedcoordinates are shifted upward or downward from the display area of themonitor 2 (Yes at the step 86), the CPU 30 advances the processing tothe next step 88. When the pointed coordinates are shifted leftward orrightward from the display area of the monitor 2 (Yes at the step 87),the CPU 30 advances the processing to the next step 89. On the otherhand, when the pointed coordinates are shifted in a direction other thanupward, downward, leftward and rightward from the display area of themonitor 2, or when the pointed coordinates are invalid (e.g. cannot becalculated) (No at the steps 86 and 87), the CPU 30 advances theprocessing to the next step 95.

At the step 88, the CPU 30 sets a ball movement vector, which indicatesa movement direction and a movement velocity of the ball object B, so asto have a predetermined magnitude and a direction parallel to the goalline of the soccer field which is set in the virtual game space, updatesthe movement vector data Dc, and advances the processing to the nextstep 95. It is noted that the direction of the ball movement vectorwhich is set at the step 88 may be set to be a direction in which a viewline direction vector of the virtual camera is projected on the virtualhorizontal plane of the virtual game space.

At the step 89, the CPU 30 sets the ball movement vector, whichindicates the movement direction and the movement velocity of the ballobject B, so as to have a predetermined magnitude and a directionparallel to the touchline of the soccer field which is set in thevirtual game space, updates the movement vector data Dc, and advancesthe processing to the next step 95. It is noted that the direction ofthe ball movement vector which is set at the step 89 may be set to be ahorizontal direction perpendicular to the direction in which the viewline direction vector of the virtual camera is projected on the virtualhorizontal plane of the virtual game space.

At the step 90, the CPU 30 determines whether or not a player characterof the team X is located within a region A having a center at thevirtual space position which is calculated at the step 84 (typically,the region is a circular region having a center at the virtual spaceposition with a predetermined radius R1 but may not be circular). Whenthe determination is Yes, the CPU 30 selects the player character(selects the player character nearest to the virtual space position whenthere are a plurality of the player characters within the region A).When no player character of the team X is located within the region A,the CPU 30 determines whether or not a player character of the team X islocated within a region B having a center at the virtual space positionwhich is calculated at the step 84 (typically, the region is a circularregion having a center at the virtual space position with apredetermined radius R2 (>R1) but may not be circular). When thedetermination is Yes, the CPU 30 selects the player character (a step92) (selects the player character nearest to the virtual space positionor all or some of the player characters when there are a plurality ofthe player characters within the region B). When the player character ofthe team X is located within the region A (Yes at the step 90), the CPU30 advances the processing to the next step 91. When the playercharacter of the team X is located within the region B (Yes at the step92), the CPU 30 advances the processing to the next step 93. Further,when no player character of the team X is located within either theregion A or the region B (No at the steps 90 and 92), the CPU 30advances the processing to the next step 94. For example, as shown inFIG. 27, the region A and the region B are each formed of a circularregion having a center at a virtual space position TP, and the region Bis larger in size than the region A. The CPU 30 refers to the latestposition data Dh, and determines the player character located within theregion A and the region B based on the position of each player characterin the virtual game space.

At the step 91, the CPU 30 sets the ball movement vector in accordancewith the player character which is selected at the step 90, and updatesthe movement vector data Dc. For example, the CPU 30 sets the directionof the ball movement vector to be a direction which is directed from thecurrent position of the ball object B to the position of the playercharacter. In addition, the CPU 30 may set the magnitude of the ballmovement vector to be a magnitude in accordance with a virtual distancefrom the current position of the ball object B to the position of theplayer character. Then, the CPU 30 advances the processing to the nextstep 95.

At the step 93, the CPU 30 sets, in accordance with the virtual spaceposition TP, the movement vector of the player character which isselected at the step 92, and updates the movement vector data Dc. Forexample, the CPU 30 sets the direction of the movement vector of theplayer character to be a direction which is directed from the currentposition of the player character, which is selected at the step 92, tothe virtual space position TP. In addition, the CPU 30 may set themagnitude of the movement vector of the player character to be amagnitude in accordance with a virtual distance from the currentposition of the selected player character to the virtual space positionTP. Then, the CPU 30 advances the processing to the next step 94.

At the step 94, the CPU 30 sets the ball movement vector in accordancewith the virtual space position TP, and updates the movement vector dataDc. For example, the CPU 30 sets the direction of the ball movementvector to be a direction which is directed from the current position ofthe ball object B to the virtual space position TP. In addition, the CPU30 may set the magnitude of the ball movement vector to be a magnitudein accordance with a virtual distance from the current position of theball object B to the virtual space position TP. Then, the CPU 30advances the processing to the next step 95.

Through the processing at the steps 90 to 94 which are performed whenthe player presses the A button as described above, the movementdirection of the ball object B (additionally, the movement velocity) isdetermined, thereby setting a direction in which the ball is to bepassed. As being clear from the above description, when there is noplayer character of the player's team near the virtual space position TPat which the core unit 70 is pointed, a target point to which the ballobject B is to be passed becomes the virtual space position TP. Whenthere is a player character of the player's team within the region A ornear the virtual space position TP at which the core unit 70 is pointed,the target point to which the ball object B is to be passed becomes theplayer character of the player's team within the region A. Further, whenthere is a player character of the player's team within the region B orat a little distance from the virtual space position TP at which thecore unit 70 is pointed, the target point to which the ball object B isto be passed becomes the virtual space position TP, and the playercharacter of the player's team within the region B moves to the virtualspace position TP.

At the step 95, the CPU 30 refers to the latest sub acceleration data,which is included in the operation information transmitted from thesubunit for the player mode of the team X, from the operationinformation Da. The CPU 30 determines whether or not the acceleration inthe Z-axis direction which is indicated by the sub acceleration data isnegative (namely, detects the acceleration in the Z-axis negativedirection) (a step 96). When the acceleration in the Z-axis direction isnegative, the CPU 30 adds a vector having the vertically upwarddirection to the ball movement vector (a step 97). It is noted that theadded vector may have a magnitude in accordance with the magnitude (theabsolute value) of the acceleration in the Z-axis direction. Then, theCPU 30 terminates the processing of this subroutine, and advances theprocessing to the step 17. Through the processing at the step 97, a pathalong which the ball object B is to be passed by the player character PCbecomes a path along which the ball object B is kicked high so as tomove by the player operating the subunit 76 so that the front thereofrises (namely, acceleration is generated in the Z-axis negativedirection). On the other hand, when the acceleration in the Z-axisdirection is not negative, the CPU 30 terminates the processing of thissubroutine, and advances the processing to the step 17.

As described above, in the pass processing at the step 16, an operationfor moving the ball object B from the position of the player characterPC keeping the ball object B is performed by the player pressing onlythe A button. The movement direction of the ball object B (additionally,the movement velocity) is controlled by the coordinate data (the firstcoordinate data Da1 and the second coordinate data Da2) obtained fromthe core unit 70 while the movement direction of the player character PC(additionally, the movement velocity) is controlled by means of thedirection instruction section (the stick 78 a) provided in the subunit76. Therefore, the player can operate different characters (objects) byoperating the two units. In other words, the player can efficiently,intuitively, and individually input movement direction control of afirst character (the player character PC) and movement direction controlof a second character (the ball object B) which moves from the positionof the first character (to be exact, the position of the secondcharacter which is determined with the determination of the position ofthe first character). Since an operation for moving the player characterPC and an operation for determining a pass direction are independentfrom each other (further, the housing 77 for performing the operationfor moving and the housing 71 for performing the operation fordetermining the pass direction are independent from each other), arealistic soccer game can be realized with a high degree of freedom.

Concerning the movement control of the second character (the ball objectB), a second direction vector which is determined in accordance with theoutput of the acceleration sensor 761 of the subunit 76 is added to afirst direction vector which is determined by the pointed coordinates bythe core unit 70, thereby calculating a movement direction vector of thesecond character. More specifically, the movement direction vector ofthe second character can be calculated as exemplified below.

In a first example of calculating the movement direction vector of thesecond character, an output vector of the acceleration sensor 761, inwhich X-axis, Y-axis, and Z-axis of the acceleration sensor 761correspond to X-axis, Y-axis, and Z-axis of a predetermined coordinatesystem (an advance direction and two directions perpendicular to theadvance direction), respectively, is converted into a direction vectorin the virtual game space. The direction vector is added as the seconddirection vector to the first direction vector. The magnitude of thesecond direction vector may be fixed or may be determined in accordancewith the magnitude of the output vector.

In a second example of calculating the movement direction vector of thesecond character, when an output value of the acceleration sensor 761 ina predetermined direction (e.g. the X-axis direction) is equal to orlarger than a predetermined value, the second direction vector havingthe corresponding direction in the predetermined coordinate system (e.g.the X-axis direction) is added to the first direction vector.

In a third example of calculating the movement direction vector of thesecond character, the second direction vector having the correspondingdirection in the predetermined coordinate system (e.g. the X-axisdirection) and a magnitude in accordance with an output value of theacceleration sensor 761 in a predetermined direction (e.g. the X-axisdirection) is added to the first direction vector.

It is noted that the second and third examples of calculating themovement direction vector of the second character may be performed for aplurality of directions. In other words, for example, in the thirdexample, the second direction vector having the X-axis direction in thepredetermined coordinate system and a magnitude in accordance with theoutput value of the acceleration sensor 761 in the X-axis direction maybe added to the first direction vector, and further the second directionvector having the Y-axis direction in the predetermined coordinatesystem and a magnitude in accordance with the output value of theacceleration sensor 761 in the Y-axis direction may be added to thefirst direction vector.

It is noted that the predetermined coordinate system may be the localcoordinate system of the player character PC, the coordinate system ofthe virtual game space (in this case, the second direction vector istypically a virtual vertical direction or a virtual horizontaldirection), the camera coordinate system, the coordinate system which isobtained by projecting the camera coordinate system on the virtualhorizontal plane, or the coordinate system based on the movementdirection which is determined by means of the direction instructionsection (e.g. a direction in which the second direction vector isperpendicular to the movement direction).

Thus, while the movement direction of the character is controlled by thepointed coordinates by the core unit 70, an operation for correcting itsdirection can be realized by inclining or moving the subunit.

With reference to FIG. 21, the following will describe in detail anoperation of the first shot processing at the step 17.

As shown in FIG. 21, the CPU 30 refers to the latest core key data,which is included in the operation information transmitted from the coreunit for the player mode of the team X, from the operation informationDa (a step 101). Next, based on the core key data which is referred toat the step 101, the CPU 30 determines whether or not the playerconcurrently presses the operation section 72 d (the A button) and theoperation section 72 i (the B button) of the core unit 70 (a step 102).When the player concurrently presses the A and B buttons, the CPU 30advances the processing to the next step 103. On the other hand, whenthe player does not concurrently presses the A and B buttons, the CPU 30terminates the processing of this subroutine, and advances theprocessing to the step 18.

At the step 103, the CPU 30 refers to the latest core acceleration data,which is included in the operation information transmitted from the coreunit for the player mode of the team X, from the operation informationDa. Then, the CPU 30 calculates the ball movement vector in accordancewith the core acceleration data, updates the movement vector data Dc (astep 104), and advances the processing to the next step. For example,the CPU 30 calculates the ball movement vector having the forwarddirection of the player character PC keeping the ball object B (e.g. themovement direction, namely, the direction of the movement directionvector of the player character PC) and a magnitude in accordance withthe magnitude of the acceleration in the Z-axis direction, which isincluded in the referred core acceleration data.

Thus, the movement velocity of the ball object B is determined inaccordance with the acceleration data which is outputted from theacceleration sensor 701 provided in the core unit 70 while the movementdirection of the ball object B is controlled by means of the directioninstruction section (the stick 78 a) provided in the subunit 76. Inother words, the player can efficiently, and intuitively, andindividually input the movement direction control and movement velocitycontrol of the ball object B. Further, while the movement velocity ofthe ball object B is controlled in accordance with the inclinationamount of the direction instruction section (the stick 78 a) provided inthe subunit 76, the movement velocity of the ball object B may becorrected in accordance with the acceleration data (or a component ofthe acceleration data in a predetermined axis direction) which isoutputted from the acceleration sensor 701 provided in the core unit 70(e.g. when there is acceleration in the Z-axis direction, apredetermined value may be added the movement velocity, the movementvelocity may be multiplied by n (n>1), or a multiple number may bedetermined in accordance with the magnitude of the acceleration in theZ-axis direction). In other words, the player can efficiently,intuitively, and individually input the movement direction control andthe movement velocity control (or movement velocity correction control)of the ball object B.

Next, the CPU 30 refers to the latest sub acceleration data, which isincluded in the operation information transmitted from the subunit forthe player mode of the team x, from the operation information Da (a step105). Then, the CPU 30 determines whether or not the acceleration in theZ-axis direction which is indicated by the sub acceleration data isnegative (namely, detects the acceleration in the Z-axis negativedirection) (a step 106). When the acceleration in the Z-axis directionis negative, the CPU 30 adds a vector having the vertically upwarddirection in the virtual game space to the ball movement vector, updatesthe movement vector data Dc (a step 107), and advances the processing tothe next step 108. It is noted that the added vector having thevertically upward direction may have a magnitude in accordance with themagnitude of the acceleration in the Z-axis direction. On the otherhand, when the acceleration in the Z-axis direction is not negative, theCPU 30 advances the processing to the step 108.

At the step 108, the CPU 30 changes the ball movement vector inaccordance with the acceleration data in the X-axis direction which isindicated by the sub acceleration data which is referred to at the step105, and advances the processing to the next step. For example, the CPU30 adds to the current ball movement vector a vector having a directionparallel to the virtual horizontal plane and perpendicular to the ballmovement vector (the direction is determined by a positive or negativesign of the acceleration data in the X-axis direction) and a magnitudein accordance with the magnitude of the acceleration in the X-axisdirection, and update the movement vector data Dc.

Thus, the movement direction of the ball object B is corrected inaccordance with the acceleration data which is outputted from theacceleration sensor 761 provided in the subunit 76 while beingcontrolled by means of the direction instruction section (the stick 78a) provided in the subunit 76. In other words, the player can input themovement direction control and movement direction correction control ofthe ball object B with one hand efficiently and intuitively. Thedirection of the correction vector may be a fixed direction in thevirtual game space (the virtual vertical direction, a virtual horizontaldirection, or the like), a direction based on the view line direction ofthe virtual camera (the view line direction, a direction perpendicularto the view line direction, or the like), a direction based on themovement direction which is determined by the direction instructionsection (a direction perpendicular to the movement direction, or thelike), a predetermined axis direction in the local coordinate system ofthe player character PC, or a direction based on the movement directionwhich is determined by the direction instruction section (a directionperpendicular to the movement direction, or the like).

Next, the CPU 30 refers to a history of the core acceleration data,which is included in the operation information transmitted from the coreunit for the player mode of the team X, from the operation informationDa, and calculates an average of acceleration which is generated in eachof X-axis, Y-axis, and Z-axis directions for a last predetermined timeperiod (a step 109). Then, the CPU 30 determines whether or not themagnitude of the acceleration average in the Z-axis direction which iscalculated at the step 109 is equal to or larger than a predeterminedvalue (a step 110). When the magnitude of the acceleration average inthe Z-axis direction is equal to or larger than the predetermined value,the CPU 30 advances the processing to a step 111. On the other hand,when the magnitude of the acceleration average in the Z-axis directionis smaller than the predetermined value, the CPU 30 advances theprocessing to a step 112.

At the step 111, the CPU 30 increases the magnitude of the ball movementvector. For example, the CPU 30 may add a predetermined value to themagnitude of the ball movement vector, may multiply the magnitude of theball movement vector by n (n>1), or may increases the magnitude of theball movement vector in accordance with the magnitude of theacceleration average in the Z-axis direction which is calculated at thestep 109.

At the step 112, the CPU 30 determines whether or not the magnitude ofthe acceleration average in the Y-axis direction which is calculated atthe step 109 is equal to or larger than a predetermined value. As beingclear from FIG. 5 and the like, when the core unit 70 is heldhorizontally, since the gravitational acceleration is constantly appliedin the Y-axis negative direction, a predetermined value which takes intoaccount the gravitational acceleration is preferably set as a criterionat the step 112. When the magnitude of the acceleration average in theY-axis direction is equal to or larger than the predetermined value, theCPU 30 advances the processing to a step 113. On the other hand, whenthe magnitude of the acceleration average in the Y-axis direction issmaller than the predetermined value, the CPU 30 advances the processingto a step 114.

At the step 113, the CPU 30 adds a vector having the vertically upwarddirection to the ball movement vector, updates the movement vector dataDc, and advances the processing to the next step 114. The magnitude ofthe vector having the vertically upward direction may be a fixedmagnitude or may be a magnitude in accordance with the magnitude of theacceleration average in the Y-axis direction which is calculated at thestep 109.

At the step 114, the CPU 30 determines whether or not the magnitude ofthe acceleration average in the X-axis direction which is calculated atthe step 109 is equal to or larger than a predetermined value. When themagnitude of the acceleration average in the X-axis direction is equalto or larger than the predetermined value, the CPU 30 advances theprocessing to a step 115. On the other hand, when the magnitude of theacceleration average in the X-axis direction is smaller than thepredetermined value, the CPU 30 terminates the processing of thissubroutine, and advances the processing to the step 18.

At the step 115, the CPU 30 adds to the current ball movement vector avector having a direction parallel to the virtual horizontal plane andperpendicular to the ball movement vector (the direction is determinedby a positive or negative sign of the acceleration average in the X-axisdirection), and updates the movement vector data Dc. Then, the CPU 30terminates the processing of this subroutine, and advances theprocessing to the step 18. It is noted that the magnitude of the vectorhaving the perpendicular direction may be a magnitude in accordance withthe magnitude of the acceleration average in the X-axis direction whichis calculated at the step 109.

Thus, when a predetermined operation button (it is the operation buttonof the core unit 70 in the above example, but may be the operationbutton of the subunit 76) is operated, a character (the ball object B)starts to move, and its movement direction is determined based on adirection instructed by the direction instruction section of the subunit76. Further, the movement direction is corrected in accordance with theoutput of the acceleration sensor 701 of the core unit 70 prior tooperation of the predetermined operation button (typically, the outputsof the acceleration sensor 701 for a last predetermined time periodprior to operating the predetermined operation button are used). Thus,the player can efficiently, intuitively, and individually input themovement direction control and the movement direction correction controlof the ball object B with hands, respectively. It is noted that themovement direction may be corrected in accordance with the output of theacceleration sensor 761 prior to operation of the predeterminedoperation button. Also, the direction of the correction vector may be apredetermined direction in the coordinate system of the virtual gamespace (typically, a Y-axis direction), a predetermined direction in thecamera coordinate system, a predetermined direction in the localcoordinate system, a predetermined direction in a coordinate systemwhich is obtained by projecting the camera coordinate system on thevirtual horizontal plane, or a direction based on the movement directionwhich is determined by the direction instruction section (a directionperpendicular to the movement direction, or the like). Thus, the playercan efficiently and intuitively input the movement direction control andthe movement direction correction control of the ball object B.

In the first shot processing at the step 17, an operation for the playercharacter PC keeping the ball object B to take a shot is performed bythe player concurrently pressing the A and B buttons. The initialvelocity and the initial direction of the shot taken by the playercharacter PC are determined by the facing direction of the playercharacter PC, the magnitude of the acceleration which is indicated bythe core acceleration data obtained from the core unit 70, and themagnitude of the acceleration which is indicated by the sub accelerationdata obtained from the subunit 76. In other words, the initial path ofthe shot taken by the player character PC is not determined by a simplebutton operation but determined in accordance with the movement of thecore unit 70 and the subunit 76 when the player performs a shotoperation. Therefore, the player can take a shot with a high degree offreedom while moving the core unit 70 and the subunit 76, and thus arealistic soccer game can be realized.

With reference to FIG. 22, the following will describe in detail anoperation of the second shot processing at the step 18.

As shown in FIG. 22, the CPU 30 refers to a history of the core keydata, which is included in the operation information transmitted fromthe core unit for the player mode of the team X, from the operationinformation Da (a step 121). Then, based on the core key data which isreferred to at the step 121, the CPU 30 determines whether or not it iswithin a predetermined time period after the player concurrently pressesthe operation section 72 d (the A button) and the operation section 72 i(the B button) of the core unit 70 (a step 122). When it is within thepredetermined time period after the player concurrently presses the Aand B buttons, the CPU 30 advances the processing to the next step 123.On the other hand, when it is not within the predetermined time periodafter the player concurrently presses the A and B buttons, the CPU 30terminates the processing of this subroutine, and advances theprocessing to the step 19.

At the step 123, the CPU 30 refers to the latest core acceleration data,which is included in the operation information transmitted from the coreunit for the player mode of the team X, from the operation informationDa. Then, the CPU 30 determines whether or not the magnitude of theacceleration in the Z-axis direction which is indicated by the coreacceleration data which is referred to at the step 123 is equal to orlarger than a predetermined value (a step 124). When the magnitude ofthe acceleration in the Z-axis direction is equal to or larger than thepredetermined value, the CPU 30 advances the processing to a step 125.On the other hand, when the magnitude of the acceleration in the Z-axisdirection is smaller than the predetermined value, the CPU 30 advancesthe processing to a step 126.

At the step 125, the CPU 30 increases the magnitude of the ball movementvector. For example, the CPU 30 may add a predetermined value to themagnitude of the ball movement vector, may multiply the magnitude of theball movement vector by n (n>1), or may increase the magnitude of theball movement vector in accordance with the magnitude of theacceleration in the Z-axis direction which is indicated by the coreacceleration data which is referred to at the step 123.

At the step 126, the CPU 30 determines whether or not the magnitude ofthe acceleration in the Y-axis direction which is indicated by the coreacceleration data which is referred to at the step 123 is equal to orlarger than a predetermined value. As being clear from FIG. 5 and thelike, when the core unit 70 is held horizontally, since thegravitational acceleration is constantly applied in the Y-axis negativedirection, a predetermined value which takes into account thegravitational acceleration is preferably set as a criterion at the step126. When the magnitude of the acceleration average in the Y-axisdirection is equal to or larger than the predetermined value, the CPU 30advances the processing to a step 127. On the other hand, when themagnitude of the acceleration average in the Y-axis direction is smallerthan the predetermined value, the CPU 30 advances the processing to astep 128.

At the step 127, the CPU 30 adds a vector having the vertically upwarddirection in the virtual game space to the ball movement vector, updatesthe movement vector data Dc, and the advances the processing to the nextstep 128. The magnitude of the vector having the vertically upwarddirection may be a fixed magnitude or may be a magnitude in accordancewith the magnitude of the acceleration in the Y-axis direction which isindicated by the core acceleration data which is referred to at the step123.

At the step 128, the CPU 30 determines whether or not the magnitude ofthe acceleration in the X-axis direction which is indicated by the coreacceleration data which is referred to at the step 123 is equal to orlarger than a predetermined value. When the magnitude of theacceleration in the X-axis direction is equal to or larger than thepredetermined value, the CPU 30 advances the processing to a step 129.On the other hand, when the magnitude of the acceleration in the X-axisdirection is smaller than the predetermined value, the CPU 30 terminatesthe processing of this subroutine, and advances the processing to thestep 19.

At the step 129, the CPU 30 adds to the current ball movement vector avector having a direction parallel to the virtual horizontal plane andperpendicular to the ball movement vector (the direction is determinedby a positive or negative sign of the acceleration in the X-axisdirection), and updates the movement vector data Dc. The magnitude ofthe vector having the perpendicular direction may be a fixed magnitudeor may be a magnitude in accordance with the magnitude of theacceleration in the X-axis direction which is indicated by the coreacceleration data which is referred to at the step 123. Then, the CPU 30terminates the processing of this subroutine, and advances theprocessing to the step 19.

Thus, when a predetermined operation button (it is the operation buttonof the core unit 70 in the above example, but may be the operationbutton of the subunit 76) is operated, a character (the ball object B)starts to move, and its movement direction is determined based on adirection instructed by the direction instruction section of the subunit76. Further, the movement direction is corrected in accordance with theoutput of the acceleration sensor 701 of the core unit 70 after theoperation of the predetermined operation button (typically, the outputsof the acceleration sensor 701 for a predetermined time periodimmediately after the operation of the predetermined operation buttonare used). Thus, the player can efficiently, intuitively, andindividually input the movement direction control and the movementdirection correction control of the ball object B with hands,respectively. It is noted that the movement direction may be correctedin accordance with the output of the acceleration sensor 761 after theoperation of the predetermined operation button. Also, the movementdirection may be a predetermined direction in the coordinate system ofthe virtual game space (typically, a Y-axis direction), a predetermineddirection in the camera coordinate system, a predetermined direction inthe local coordinate system, a predetermined direction in a coordinatesystem which is obtained by projecting the camera coordinate system onthe virtual horizontal plane, or a direction based on the movementdirection which is determined by the direction instruction section (adirection perpendicular to the movement direction, or the like). Thus,the player can efficiently and intuitively input the movement directioncontrol and the movement direction correction control of the ball objectB.

Thus, in the second shot processing at the step 18, concerning a path ofthe ball after the player performs the shot operation by concurrentlypressing the A and B buttons, a movement velocity, a movement direction,a movement distance, and the like of the ball are determined inaccordance with the core acceleration data obtained from the core unit70. For example, as shown in FIG. 28, a path a which is determined by aball movement vector Vmb of the ball object B can be changed into a pathb or a path c in accordance with the core acceleration data obtainedfrom the core unit 70. In other words, while the movement of the playercharacter PC is controlled by a direction input, a path after a shot istaken is determined not only by a simple button operation but also inaccordance with the movement of the core unit 70 after the playerperforms the shot operation. Therefore, the player can intuitivelychange the shot path by moving the core unit 70 while controlling themovement direction of the player character PC, and thus a realisticsoccer game can be realized.

With reference to FIG. 23, the following will describe in detail anoperation of the temporary coach mode processing at the step 19.

As shown in FIG. 23, the CPU 30 refers to the latest core key data,which is included in the operation information transmitted from the coreunit for the player mode of the team X, from the operation informationDa (a step 131). Next, based on the core key data which is referred toat the step 13, the CPU 30 determines whether or not the player pressesthe upward portion of the operation section 72 (the cross key) of thecore unit 70 (a step 132). When the player presses the upward portion ofthe cross key, the CPU 30 advances the processing to the next step 133.On the other hand, when the player does not press the upward portion ofthe cross key, the CPU 30 advances the processing to the next step 136.

At the step 133, the CPU 30 refers to the latest core acceleration data,which is included in the operation information transmitted from the coreunit of the player mode of the team X, from the operation informationDa. Then, the CPU 30 determines whether or not the magnitude of theacceleration in the X-axis direction which is indicated by the coreacceleration data is equal to or larger than a predetermined value (astep 134). When the magnitude of the acceleration in the X-axisdirection is equal to or larger than the predetermined value, the CPU 30advances the processing to the next step 135. On the other hand, whenthe magnitude of the acceleration in the X-axis direction is smallerthan the predetermined value, the CPU 30 advances the processing to thenext step 136.

At the step 135, based on the magnitude of the acceleration in theX-axis direction which is indicated by the core acceleration data whichis referred to at the step 133, the CPU 30 updates the movement vectorsof all of the non-player characters NPC of the team X, updates themovement vector data Dc, and advances the processing to the next step136. For example, as shown in FIG. 29, the CPU 30 adds to the movementvectors of all of the non-player characters NPC of the team X acorrection vector having a direction parallel to the touchline of thesoccer field which is set in the virtual game space, thereby calculatingnew movement vectors Vmnpc. The correction vector may have a fixedmagnitude or may have a magnitude in accordance with the magnitude ofthe acceleration in the X-axis direction. It is noted that the directionof the correction vector may be determined in accordance with thedirection of the acceleration which is indicated by the coreacceleration data. In this case, the following examples are considered.

In a first example of determining the direction of the correctionvector, an output vector of the core acceleration data is converted intoa direction vector in the virtual game space so that the axes of thecore acceleration data correspond to the mutually-perpendicular threedirections of the virtual game space coordinate, respectively(typically, so that the axes of the core acceleration data correspond tothe axes of the virtual space coordinate, respectively).

In a second example of determining the direction of the correctionvector, the output vector of the core acceleration data is convertedinto a direction vector in the virtual game space so that each axis ofthe core acceleration data corresponds to each axis of the localcoordinate system of a predetermined character (the player character PC,or the like).

In a third example of determining the direction of the correctionvector, the output vector of the core acceleration data is convertedinto a direction vector in the virtual space so that each axis of thecore acceleration data corresponds to each axis of the camera coordinatesystem (or axes which are obtained by projecting X-axis and Z-axis ofthe camera coordinate system on the virtual horizontal plane).

In a fourth example of determining the direction of the correctionvector, the output vector of the core acceleration data is convertedinto a direction vector in the virtual game space so that the axes ofthe core acceleration data correspond to the movement direction vector(or the facing direction vector) of a predetermined character, and twodirections perpendicular to the movement direction vector, respectively.

It is noted that in the processing at the step 135, the output of thesub acceleration data may be used instead of the core acceleration data.

In the processing at the step 135, the movement vector of the playercharacter PC of the team X may be processed by the same vector addition,and updated. Alternatively, any one of the non-player characters NPC ofthe team X (e.g. a goalkeeper of the team X) may be excluded fromobjects to be processed by the vector addition. Although the vectorhaving the direction parallel to the touchline and the magnitude inaccordance with the magnitude of the acceleration in the X-axisdirection is added in the above-described processing, this vector may beset as the movement vectors of all of the non-player characters NPC ofthe team X. Further, the direction of the added vector may be set to bea horizontal direction perpendicular to a direction in which the viewline direction vector of the virtual camera is projected on the virtualhorizontal plane in the virtual game space, or another direction basedon the view line direction of the virtual camera. Since the direction ofan acceleration vector detected by the acceleration sensor 701 at thebeginning of movement of the core unit 70 in a direction is generallyopposite to the direction of the movement, the acceleration vectordetected at that time may be reversed in direction and used. Thedirection of an acceleration vector detected by the acceleration sensor701 when its movement is stopped after the core unit 70 is moved in adirection is the same as the direction of the movement, and thus thisdetected acceleration vector may be used. In this respect, the same istrue of the similar processing which is described in other portions ofthe present specification.

As described above, the movement direction of the player character PC iscontrolled by means of the stick 78 a of the subunit 76, and themovement directions of a plurality of the non-player characters NPC (mayinclude the player character PC) are controlled in accordance with thecore acceleration data (or the sub acceleration data) obtained from thecore unit 70. In other words, the player can control the movementdirections of a plurality of characters by moving the core unit 70 (orthe subunit 76) while controlling a specific character by means of thedirection instruction means. Therefore, the player can intuitivelycontrol the movement directions of the plurality of characters whilecontrolling the movement direction of the specific character by means ofthe direction instruction means.

At the step 136, based on the core key data which is referred to at thestep 131, the CPU 30 determines whether or not the player presses thedownward portion of the cross key of the core unit 70. When the playerpresses the downward portion of the cross key, the CPU 30 advances theprocessing to the next step 137. On the other hand, when the player doesnot press the downward portion of the cross key, the CPU 30 terminatesthe processing of this subroutine, and advances the processing to thenext step 20.

At the step 137, the CPU 30 refers to the latest first coordinate dataDa1 and the latest second coordinate data Da2, which are included in theoperation information transmitted from the core unit for the player modeof the team X, from the operation information Da. Then, the CPU 30calculates pointed coordinates which correspond to the first coordinatedata Da1 and the second coordinate data Da2 which are referred to at thestep 137, and a virtual space position which corresponds to the pointedcoordinates, and updates the pointed coordinate data De and the virtualspace position coordinate data Df which correspond to the core unit forthe player mode of the team X (a step 138). The CPU 30 advances theprocessing to the next step. It is noted that a method of calculatingthe pointed coordinates and the virtual space position at the step 138is the same as that the step 84, and thus the detailed description willbe omitted.

Next, the CPU 30 refers to the instruction target player data Dg, anddetermines whether or not an instruction target player for thecontroller 7 for the player mode of the team X is set (a step 139). Whenthe instruction target player has not been set, the CPU 30 advances theprocessing to the next step 141. On the other hand, when the instructiontarget player is set, the CPU 30 advances the processing to the nextstep 143.

At the step 141, the CPU 30 determines whether or not any of the playercharacters of the team X is located within a region A (see FIG. 27)having a center at the virtual space position which is calculated at thestep 138. Next, when the player character of the team X is locatedwithin the region A, the CPU 30 sets the player character to be theinstruction target player for the controller 7 for the player mode ofthe team X, and describes its character identification number and thelike in the instruction target player data Dg (a step 142). It is notedthat when there are a plurality of the player characters of the team Xwithin the region A, the player character nearest to the virtual spaceposition which is calculated at the step 138 is set to be theinstruction target player. Then, the CPU 30 terminates the processing ofthis subroutine, and advances the processing to the next step 20. On theother hand, when no player character of the team X is located within theregion A, the CPU 30 terminates the processing of this subroutine, andadvances the processing to the next step 20.

At the step 143, the CPU 30 determines whether or not the calculatedvirtual space coordinate is within the soccer field which is set in thevirtual game space. Next, when the virtual space coordinate is withinthe soccer field, the CPU 30 sets the movement vector of the instructiontarget player in accordance with the virtual space position, and updatesthe movement vector data Dc (a step 144). For example, the CPU 30 setsthe direction of the movement vector of the instruction target player tobe a direction which is directed from the current position of theinstruction target player to the virtual space position TP (see FIG.27). Further, the CPU 30 may set the magnitude of the movement vector ofthe instruction target player to be a magnitude in accordance with avirtual distance from the current position of the instruction targetplayer to the virtual space position TP. Then, the CPU 30 clears theinstruction target player for the controller for the player mode of theteam X which is described in the instruction target player data Dg (astep 145), terminates the processing of this subroutine, and advancesthe processing to the next step 20. On the other hand, when the virtualspace coordinate is out of the soccer field, the CPU 30 terminates theprocessing of this subroutine, and the advances the processing to thenext step 20. It is noted that the instruction target player may not becleared at the step 145. In this case, after the instruction targetplayer is set, a movement instruction can be given with respect to theinstruction target player a plurality of times (in this case, thisclearing processing may be performed in accordance with a buttonoperation, a coordinate instruction into a predetermined region, or thelike).

With reference to FIG. 24, the following will describe in detail anoperation of the coach mode processing at the step 20.

As shown in FIG. 24, the CPU 30 refers to the controller identificationnumber data Db, and determines whether or not an controlleridentification number for the coach mode of the team X is set (a step151). When the controller identification number for the coach mode ofthe team X is set, the CPU 30 advances the processing to the next step152. On the other hand, when the controller identification number forthe coach mode of the team X has not been set, the CPU 30 terminates theprocessing of this subroutine, and advances the processing to the nextstep 21.

At the step 152, the CPU 30 refers to the latest core acceleration data,which is included in the operation information transmitted from the coreunit for the coach mode of the team X, from the operation informationDa. Next, the CPU 30 determines whether or not the magnitude of theacceleration in the X-axis direction which is indicated by the coreacceleration data is equal to or larger than a predetermined value (astep 153). When the magnitude of the acceleration in the X-axisdirection is equal to or larger than the predetermined value, the CPU 30advances the processing to the next step 154. On the other hand, whenthe magnitude of the acceleration in the X-axis direction is smallerthan the predetermined value, the CPU 30 advances the processing to thenext step 155.

At the step 154, based on the magnitude of the acceleration in theX-axis direction which is indicated by the core acceleration data whichis referred to at the step 152, the CPU 30 updates the movement vectorsof all of the non-player characters NPC of the team X, updates themovement vector data Dc, and advances the processing to the next step155. For example, as shown in FIG. 29, the CPU 30 adds to the movementvectors of all of the non-player characters NPC of the team X acorrection vector having a direction parallel to the touchline of thesoccer field which is set in the virtual game space, thereby calculatingnew movement vectors Vmnpc. The correction vector may have a fixedmagnitude or may have a magnitude in accordance with the magnitude ofthe acceleration in the X-axis direction. It is noted that the directionof the correction vector may be determined in accordance with thedirection of the acceleration which is indicated by the coreacceleration data. More specifically, the direction of the correctionvector may be determined similarly as in the above first to fourthexamples of determining the direction of the correction vector.

It is noted that in the processing at the step 154, similarly as in theprocessing at the step 135, the movement vector of the player characterPC of the team X may be processed by the same vector addition, andupdated. Alternatively, any one of the non-player characters NPC of theteam X (e.g. the goalkeeper of the team X) may be excluded from objectsto be processed by the vector addition. Although the vector having thedirection parallel to the touchline and the magnitude in accordance withthe magnitude of the acceleration in the X-axis direction is added inthe above-described processing, this vector may be set as the movementvectors of all of the non-player characters NPC of the team X. Further,the direction of the added vector may be set to be a horizontaldirection perpendicular to a direction in which the view line directionvector of the virtual camera is projected on the virtual horizontalplane in the virtual game space, or another direction based on the viewline direction of the virtual camera.

At the step 155, the CPU 30 refers to the latest first coordinate dataDa1 and the latest second coordinate data Da2, which are included in theoperation information transmitted from the core unit for the coach modeof the team X, from the operation information Da. Next, the CPU 30calculates pointed coordinates which correspond to the first coordinatedata Da1 and the second coordinate data Da2 which are referred to at thestep 155, and a virtual space position which corresponds to the pointedcoordinates, and updates the pointed coordinate data De and the virtualspace position coordinate data Df which correspond to the core unit forthe coach mode of the team X (a step 156). The CPU 30 advances theprocessing to the next step. It is noted that a method of calculatingthe pointed coordinates and the virtual space position at the step 156is the same as that at the step 84, and thus the detailed descriptionwill be omitted.

Next, the CPU 30 refers to the instruction target player data Dg, anddetermines whether or not an instruction target player for thecontroller 7 for the coach mode of the team X is set (a step 157). Whenthe instruction target player has not been set, the CPU 30 advances theprocessing to the next step 158. On the other hand, when the instructiontarget player is set, the CPU 30 advances the processing to the nextstep 160.

At the step 158, the CPU 30 determines whether or not any playercharacter of the team X is located within a region A (see FIG. 27)having a center at the virtual space position which is calculated at thestep 156. When the player character of the team X is located within theregion A, the CPU 30 sets the player character to be the instructiontarget player for the controller for the coach mode of the team X, anddescribes its character identification number and the like in theinstruction target player data Dg (a step 159). It is noted that whenthere are a plurality of the player characters of the team X within theregion A, the player character nearest to the virtual space positionwhich is calculated at the step 138 is set to be the instruction targetplayer. Then, the CPU 30 terminates the processing of this subroutine,and advances the processing to the next step 21. On the other hand, whenno player character of the team X is located within the region A, theCPU 30 terminates the processing of this subroutine, and advances theprocessing to the next step 21.

At the step 160, the CPU 30 determines whether or not the calculatedvirtual space coordinates are within the soccer field which is set inthe virtual game space. When the virtual space coordinates are withinthe soccer field, the CPU 30 sets the movement vector of the instructiontarget player in accordance with the virtual space position, and updatesthe movement vector data Dc (a step 161). For example, the CPU 30 setsthe direction of the movement vector of the instruction target player tobe a direction which is directed from the current position of theinstruction target player to the virtual space position TP (see FIG.27). Further, the CPU 30 may set the magnitude of the movement vector ofthe instruction target player to be a magnitude in accordance with avirtual distance from the current position of the instruction targetplayer to the virtual space position TP. Then, the CPU 30 clears theinstruction target player for the controller for the coach mode of theteam X which is described in the instruction target player data Dg (astep 162), terminates the processing of this subroutine, and advancesthe processing to the next step 21. On the other hand, when the virtualspace coordinates are out of the soccer field, the CPU 30 terminates theprocessing of this subroutine, and advances the processing to the nextstep 21. It is noted that the instruction target player may not becleared at the step 162. In this case, after the instruction targetplayer is set, a movement instruction can be given with respect to theinstruction target player a plurality of times (in this case, thisclearing processing may be performed in accordance with a buttonoperation, a coordinate instruction into a predetermined region, or thelike).

As described above, in the coach mode processing at the step 20,comprehensive operation for the whole team can be possible by settingthe controller 7 operated by the player to the coach mode. Morespecifically, the movement directions of a plurality of the non-playercharacters NPC (may include the player character PC) of the team arecontrolled in accordance with the core acceleration data (or the subacceleration data) obtained from the core unit 70. In other words, theplayer can control the movement directions of a plurality of charactersby moving the core unit 70 (or the subunit 76). Therefore, the playercan intuitively control the movement directions of the plurality ofcharacters in the coach mode.

As being clear from the processing of the flow charts described above,in the temporary coach mode processing at the step 19, steps foroperating the cross key are different from those in the coach modeprocessing at the step 20 but the other processing are similar to thosein the coach mode. More specifically, even if the controller 7 operatedby the player is set to the player mode, the same operations as those inthe above coach mode are possible by operating the upward or downwardportion of the cross key.

In the processing at the step 22, each movement vector data described inthe movement vector data Dc is decreased by a predetermined amount.However, when the non-player character NPC is desired to move until itreaches a predetermined point, the movement vector of the non-playercharacter NPC may not be decreased. For example, when the instructiontarget player is desired to move to the virtual space position TP atwhich the core unit 70 is pointed, the magnitude and the direction ofthe movement vector of the instruction target player may be maintaineduntil the instruction target player reaches the virtual space positionTP.

In the above description, data of the image of a target which is takenby the image pickup element 743 of the core unit 70 is analyzed forremotely designating coordinates with respect to the display screen ofthe monitor 2. In this manner, two markers are provided near the displayscreen as targets whose images are to be taken, a device which includesimaging means and a housing capable of changing the imaging directionthereof detects the two markers in a taken image, and the coordinateposition designated by the device is obtained based on the positions ofthe markers in the taken image. However, the coordinate designation maybe performed in other manners.

For example, a target whose image is to be taken and which is providednear the display screen may be a member which reflects light or aphysical marker having a specific color or a specific shape as well asthe above electric markers (the LED module). Alternatively, a targetwhose image is to be taken may be displayed on the display screen of themonitor 2. Still, alternatively, the image object may be a raster scantype monitor having scan lines which are read by the imaging means ofthe core unit 70. Still, alternatively, a magnetic field generatingapparatus may be provided, and magnetic field generated by the magneticfield generating apparatus may be used for remotely designatingcoordinates. In this case, the core unit 70 is provided with a magneticsensor for detecting the magnetic field.

In the above description, the infrared lights from the two markers 8Land 8R are targets whose images are to be taken by the imaginginformation calculation section 74 of the core unit 70, but otherelements may be targets whose images are to be taken. For example, onemarker or three or more markers may be provided near the monitor 2, andinfrared lights from these markers may be targets whose images are to betaken by the imaging information calculation section 74. For example, ifa single marker having a predetermined length is provided near themonitor 2, the present invention can be similarly achieved.Alternatively, the display screen itself of the monitor 2 or anotherlight emitter (an interior light) may be a target whose image is to betaken by the imaging information calculation section 74. If a positionof the core unit 70 with respect to the display screen is calculatedbased on an arrangement relation between a target whose image is to betaken and the display screen of the monitor 2, various light emitterscan be used as targets whose images are to be taken by the imaginginformation calculation section 74.

A target whose image is to be taken, such as a marker, may be providedon the core unit 70, and an image-taking means may be provided on themonitor 2. In a still another example, a mechanism for emitting lightfrom the front surface of the core unit 70 may be provided. In thiscase, an image-taking device for taking an image of the display screenof the monitor 2 is provided at a place different from those of the coreunit 70 and the monitor 2. By analyzing a position at which lightemitted from the core unit 70 toward the display screen of the monitor 2is reflected, based on an image taken by the imaging device, it issimilarly possible to form a pointing device which is capable ofoutputting data for remotely designating coordinates with respect to thedisplay screen.

In the above description, the controller 7 and the game apparatus mainbody 5 are connected to each other by radio communication. However, thecontroller 7 and the game apparatus main body 5 may be connected to eachother by a cable. In this case, the core unit 70 and the subunit 76 areconnected to each other by the connection cable 79, and the core unit 70and the game apparatus main body 5 are connected to each other byanother cable.

The shape of the controller 7, and the shapes, numbers, and installedpositions of the operation sections 72 and 78 provided therein asdescribed above are merely an example, and the present invention can beachieved with other shapes, numbers and installed positions.

The game program of the present invention may be supplied to the gameapparatus main body 5 via a wired or wireless communication line, inaddition to from an external storage medium such as the optical disc 4,or the like. Alternatively, the game program may be in advance stored ina nonvolatile storage unit within the game apparatus main body 5. It isnoted that an information storage medium for storing the game programmay be a nonvolatile semiconductor memory in addition to an opticaldisc-shaped storage medium such as CD-ROM, DVD, and the like.

The game system and the storage medium storing the game programaccording to the present invention variedly control the movement of theplayer character by an intuitive and easy operation, make the playerhave a direct feeling of a game input, and are each useful as a gamesystem for moving an object in the virtual game world, and a gameprogram executed by a game apparatus main body.

While the invention has been described in detail, the foregoingdescription is in all aspects illustrative and not restrictive. It isunderstood that numerous other modifications and variations can bedevised without departing from the scope of the invention.

What is claimed is:
 1. A game system comprising a game controllerincluding a housing, a game apparatus in communication with the gamecontroller, and an orientation detector for detecting aspects oforientation of the housing, the game controller including at least adirection input device which is provided in the housing for receiving adirection input, and the game apparatus including: a processor; and amemory coupled to the processor, the memory storing instructions that,when executed by the processor, control the game apparatus to generateimages of a virtual game world, each of one or more of the images beinggenerated by at least: receiving, from the game controller, atransmission of operation data including both direction input datacorresponding to a direction input received by the direction inputdevice of the game controller and orientation data corresponding toaspects of orientation of the game controller detected by theorientation detector; determining a movement vector of an object, whichappears in the virtual game world, in accordance with the directioninput data from the received transmission of operation data; combiningthe determined movement vector with a correction vector determined basedon the orientation data from the same received transmission of operationdata, to produce a corrected movement vector; moving the object in thevirtual game world based on the corrected movement vector; andgenerating, for display, an image of the virtual game world after themoving of the object.
 2. The game system according to claim 1, whereinthe correction vector is determined so as to increase a movement amountof the object in a predetermined direction in the virtual game world inaccordance with rotation of the housing about a predetermined axis. 3.The game system according to claim 2, wherein the correction vector isdetermined so as to increase a movement amount of the object in aforward direction thereof in the virtual game world in accordance withrotation of the housing about a left-right axis of the housing.
 4. Thegame system according to claim 2, wherein the correction vector isdetermined so as to increase a movement amount of the object in aleft-right direction thereof in the virtual game world in accordancewith rotation of the housing about a front-rear axis of the housing. 5.The game system according to claim 1, wherein the correction vector isdetermined so as to increase a movement amount of the object in apredetermined direction in the virtual game world in accordance withrotation of a predetermined axis of the housing about an axisperpendicular to the predetermined axis.
 6. The game system according toclaim 1, wherein the correction vector is determined so as to increase amovement amount of the object in a first direction in the virtual gameworld in accordance with rotation of a first axis of the housing aboutan axis perpendicular to the first axis, and the correction vector isdetermined so as to increase a movement amount of the object in a seconddirection in the virtual game world, which is different from the firstdirection, in accordance with rotation of a second axis of the housing,which is different from the first axis, about an axis perpendicular tothe second axis.
 7. The game system according to claim 1, wherein thedirection input device includes at least a stick which is configured forinclining in a predetermined direction of the housing thereby to receivean input, the movement vector is determined so as to move the object ina first direction in the virtual game world when the stick is inclinedin the predetermined direction, and the correction vector is determinedso as to increase a movement amount of the object in the first directionin the virtual game world in accordance with rotation of the housing soas to be inclined in the predetermined direction.
 8. The game systemaccording to claim 1, wherein the direction input device includes atleast a stick which is configured for inclining so as to rotate about apredetermined axis of the housing thereby to receive an input, themovement vector is determined so as to move the object in a firstdirection in the virtual game world when the stick is inclined in adirection to rotate about the predetermined axis, and the correctionvector is determined so as to increase a movement amount of the objectin the first direction in the virtual game world in accordance withrotation of the housing about the predetermined axis.
 9. The game systemaccording to claim 1, wherein the direction input device includes atleast a stick which is configured for inclining in a predetermineddirection of the housing or a direction perpendicular to thepredetermined direction thereby to receive an input, the movement vectoris determined so as to move the object in a first direction in thevirtual game world when the stick is inclined in the predetermineddirection, and the movement vector is determined so as to move theobject in a second direction perpendicular to the first direction in thevirtual game world when the stick is inclined in the perpendiculardirection, and the correction vector is determined so as to increase amovement amount of the object in the first direction in the virtual gameworld in accordance with rotation of the housing so as to be inclined inthe predetermined direction, and the correction vector is determined soas to increase a movement amount of the object in the second directionin the virtual game world in accordance with rotation of the housing soas to be inclined in the perpendicular direction.
 10. The game systemaccording to claim 1, wherein the direction input device includes atleast a stick which is configured for inclining in a forward, backward,leftward, or rightward direction of the housing thereby to receive inputfor a forward, backward, leftward, or rightward direction, the movementvector is determined so as to move the object in a reference directionby changing the reference direction, in which the object moves in thevirtual game world, in accordance with a direction input to thedirection input device when the stick is inclined in the forwarddirection of the housing, the correction vector is determined so as toincrease a movement amount of the object in the reference direction inthe virtual game world in accordance with inclination of the housing inthe forward direction.
 11. A game system comprising a game controlleroperated by a player and a game apparatus in communication with the gamecontroller, the game controller including: a housing; a direction inputdevice provided so that, when the player holds the housing with onehand, the direction input device is operable by the player's thumb; anda movement detector for detecting movement of the housing, and the gameapparatus including: a processor; and a memory coupled to the processor,the memory storing instructions that, when executed by the processor,control the game apparatus to generate image of a virtual game world,each of one or more of the images being generated by at least:receiving, from the game controller, a transmission of operation dataincluding both direction input data corresponding to a direction inputsupplied to the direction input device of the game controller andmovement data corresponding to movement detected by the movementdetector; determining, in accordance with the direction input data fromthe received transmission of operation data, a forward direction of anobject, which appears in the virtual game world, as a direction of amovement vector of the object when the direction input data correspondsto input to the direction input device in a forward direction of thehousing, determining a backward direction of the object in the virtualgame world as the direction of the movement vector when the directioninput data corresponds to input to the direction input device in abackward direction of the housing, and determining a leftward orrightward direction of the object in the virtual game world as thedirection of the movement vector when the direction input datacorresponds to input to the direction input device in a leftward orrightward direction of the housing; combining the movement vector with acorrection vector determined based on the movement data from the samereceived transmission of operation data resulting from rotation of thehousing in the forward direction of the housing, to produce a correctedmovement vector for increasing a movement amount of the object in theforward direction of the virtual game world; moving the object in thevirtual game world based on the corrected movement vector; andgenerating, for display, an image of the virtual game world after themoving of the object.
 12. The game system according to claim 2, whereina direction of the movement vector is determined with a forwarddirection of the object in the virtual game world as a reference inaccordance with a direction input to the direction input device, and theprocessor further sets the direction of the movement vector, which isalready determined and corrected, as a new forward direction of theobject, and changes a direction of the object in the virtual game worldbased on the new forward direction.
 13. A game system comprising a gamecontroller operated by a player and a game apparatus in communicationwith the game controller, the game controller including at least: ahousing; an acceleration detector for detecting acceleration associatedwith the housing; and a direction input device provided in the housingfor receiving direction input, and the game apparatus including: aprocessor; and a memory coupled to the processor, the memory storinginstructions that, when executed by the processor, control the gameapparatus to generate images of a virtual game world, each of one ormore of the images being generated by at least: receiving, from the gamecontroller, a transmission of operation data including both directioninput data corresponding to a direction input received by the directioninput device of the game controller and acceleration data correspondingto acceleration detected by the acceleration detector of the gamecontroller; determining a movement vector of an object, which appears inthe virtual game world, in accordance with the direction input data fromthe received transmission of operation data; combining the determinedmovement vector with a correction vector determined based on theacceleration data from the same received transmission of operation data,to produce a corrected movement vector; moving the object in the virtualgame world based on the corrected movement vector; and generating, fordisplay, an image of the virtual game world after the moving of theobject.
 14. The game system according to claim 13, wherein thecorrection vector is determined so as to increase a movement amount ofthe object in a predetermined direction in the virtual game world inaccordance with acceleration generated in a predetermined axialdirection of the housing.
 15. The game system according to claim 14,wherein the correction vector is determined so as to increase a movementamount of the object in a forward direction thereof in the virtual gameworld in accordance with acceleration generated in a forward directionof the housing.
 16. The game system according to claim 14, wherein thecorrection vector is determined so as to increase a movement amount ofthe object in a leftward or rightward direction thereof in the virtualgame world in accordance with acceleration generated in a leftward orrightward direction of the housing.
 17. The game system according toclaim 13, wherein the correction vector is determined so as to increasea movement amount of the object in a first direction in the virtual gameworld in accordance with acceleration generated in a first direction ofthe housing, and the correction vector is determined so as to increase amovement amount of the object in a second direction in the virtual gameworld, which is different from the first direction in the virtual gameworld, in accordance with acceleration generated in a second directionof the housing which is different from the first direction of thehousing.
 18. The game system according to claim 13, wherein thedirection input device includes at least a stick which is configured forinclining in a predetermined direction of the housing thereby to receivean input, the movement vector is determined so as to move the object ina first direction in the virtual game world when the stick is inclinedin the predetermined direction, and the correction vector is determinedso as to increase a movement amount of the object in the first directionin the virtual game world in accordance with acceleration generated inthe predetermined direction.
 19. The game system according to claim 13,wherein the direction input device includes at least a stick which isconfigured for inclining in a predetermined direction of the housing ora direction perpendicular to the predetermined direction thereby toreceive an input, the movement vector is determined so as to move theobject in a first direction in the virtual game world when the stick isinclined in the predetermined direction, and the movement vector isdetermined so as to move the object in a second direction perpendicularto the first direction in the virtual game world when the stick isinclined in the perpendicular direction, and the correction vector isdetermined so as to increase a movement amount of the object in thefirst direction in the virtual game world in accordance withacceleration generated in the predetermined direction of the housing,and the correction vector is determined so as to increase a movementamount of the object in the second direction in the virtual game worldin accordance with acceleration generated in the perpendicular directionof the housing.
 20. The game system according to claim 13, wherein thedirection input device includes at least a stick which is configured forinclining in a forward, backward, leftward, or rightward direction ofthe housing thereby to receive an input for a forward, backward,leftward, or rightward direction, the movement vector is determined soas to move the object in a reference direction by changing the referencedirection, in which the object moves in the virtual game world, inaccordance with a direction input to the direction input device when thestick is inclined in the forward direction of the housing, and thecorrection vector is determined so as to increase a movement amount ofthe object in the reference direction in the virtual game world inaccordance with acceleration generated in the forward direction of thehousing.
 21. A game system comprising a game controller operated by aplayer and a game apparatus in communication with the game controller,the game controller including: a housing; a direction input deviceprovided so that, when the player holds the housing with one hand, thedirection input device is operable with a thumb of the one hand forreceiving an input in a forward, backward, leftward, or rightwarddirection of the housing; and an acceleration detector for detectingacceleration generated at least in the forward direction of the housing,and the game apparatus including: a processor; and a memory coupled tothe processor, the memory storing instructions that, when executed bythe processor, control the game apparatus to generate images of avirtual game world, each of one or more of the images being generated byat least: receiving, from the game controller, a transmission ofoperation data including both direction input data corresponding to adirection input received by the direction input device of the gamecontroller and acceleration data corresponding to acceleration detectedby the acceleration detector of the game controller; determining, inaccordance with the direction input data from the received transmissionof operation data, a forward direction of an object, which appears inthe virtual game world, as a direction of a movement vector of theobject when the direction input data corresponds to input to thedirection input device in the forward direction of the housing,determining a backward direction of the object in the virtual game worldas the direction of the movement vector when the direction input datacorresponds to input to the direction input device in the backwarddirection of the housing, and determining a leftward or rightwarddirection of the object in the virtual game world as the direction ofthe movement vector when the direction input data corresponds to inputto the direction input device in the leftward or rightward direction ofthe housing; combining the movement vector with a correction vectordetermined based on the acceleration data from the same receivedtransmission of operation data resulting from acceleration generated inthe forward direction of the housing, to produce a corrected movementvector for increasing a movement amount of the object in the forwarddirection in the virtual game world; moving the object in the virtualgame world based on the corrected movement vector; and generating, fordisplay, an image of the virtual game world after the moving of theobject.
 22. The game system according to claim 13, wherein a directionof the movement vector is determined with a forward direction of theobject in the virtual game world as a reference in accordance with adirection input to the direction input device, and the executedinstructions further control the game apparatus to set the direction ofthe movement vector, which is already determined and corrected, as a newforward direction of the object, and change a direction of the object inthe virtual game world based on the new forward direction.
 23. A gamesystem comprising a game controller including a housing, a gameapparatus in communication with the game controller, and an orientationdetector for detecting aspects of orientation of the housing, the gamecontroller including at least a direction input device which is providedin the housing for receiving a direction input, and the game apparatusincluding: a processor; and a memory coupled to the processor, thememory storing instructions that, when executed by the processor,control the game apparatus to generate images of a virtual game world,each of one or more of the images being generated by at least:receiving, from the game controller, a transmission of operation dataincluding both direction input data corresponding to a direction inputreceived by the direction input device of the game controller andorientation data corresponding to aspects of orientation of the gamecontroller detected by the orientation detector; determining a movementdirection of an object, which appears in the virtual game world, inaccordance with the direction input data from the received transmissionof operation data; determining a movement amount of the object inaccordance with the orientation data from the same received transmissionof operation data; and moving the object in the virtual game world,based on the determined movement direction and the determined movementamount; and generating, for display, an image of the virtual game worldafter the moving of the object.
 24. A game system comprising a gamecontroller operated by a player and a game apparatus in communicationwith the game controller, the game controller including at least: ahousing; an acceleration sensor for detecting acceleration associatedwith the housing; and a direction input device provided in the housingfor receiving direction input, and the game apparatus including: aprocessor; and a memory coupled to the processor, the memory storinginstructions that, when executed by the processor, control the gameapparatus to generate images of a virtual game world, each of one ormore of the images being generated by at least: receiving, from the gamecontroller, a transmission of operation data including both directioninput data corresponding to a direction input received by the directioninput device of the game controller and acceleration data correspondingto acceleration detected by the acceleration detector of the gamecontroller; determining a movement direction of an object, which appearsin the virtual game world, in accordance with the direction input datafrom the received transmission of operation data; determining a movementamount of the object in accordance with the acceleration data from thesame received transmission of operation data; moving the object in thevirtual game world based on the determined movement direction and thedetermined movement amount; and generating, for display, an image of thevirtual game world after the moving of the object.
 25. A game systemcomprising a game controller including a housing, a game apparatus incommunication with the game controller, and an orientation detector fordetecting aspects of orientation of the housing, the game controllerincluding at least a direction input device which is provided in thehousing for receiving a direction input, and the game apparatusincluding: a processor; and a memory coupled to the processor, thememory storing instructions that, when executed by the processor,control the game apparatus to generate images of a virtual game world,each of one or more of the images being generated by at least:receiving, from the game controller, a transmission of operation dataincluding both direction input data corresponding to a direction inputreceived by the direction input device of the game controller andorientation data corresponding to aspects of orientation of the gamecontroller detected by the orientation detector; determining a positionof an object, which appears in the virtual game world, in accordancewith the direction input data from the received transmission ofoperation data; determining a displacement amount of the object in thevirtual game world in accordance with the orientation data from the samereceived transmission of operation data; and moving the object in thevirtual game world by changing the determined position of the object bythe determined displacement amount; and generating, for display, animage of the virtual game world after the moving of the object.
 26. Thegame system according to claim 25, wherein a displacement amount of theobject is determined in a predetermined direction in the virtual gameworld in accordance with rotation of the housing about a predeterminedaxis.
 27. The game system according to claim 25, wherein thedisplacement amount is determined so as to displace the object in aforward direction of the object in the virtual game world in accordancewith rotation of the housing about a left-right axis of the housing. 28.The game system according to claim 25, wherein the displacement amountis determined so as to displace the object in a leftward or rightwarddirection of the object in the virtual game world in accordance withrotation of the housing about a front-rear axis of the housing.
 29. Thegame system according to claim 25, wherein the displacement amount isdetermined so as to displace the object in a predetermined direction inthe virtual game world in accordance with rotation of a predeterminedaxis of the housing about an axis perpendicular to the predeterminedaxis.
 30. The game system according to claim 25, wherein thedisplacement amount is determined so as to displace the object in afirst direction in the virtual game world in accordance with rotation ofa first axis of the housing about an axis perpendicular to the firstaxis, and the displacement amount is determined so as to displace theobject in a second direction in the virtual game world, which isdifferent from the first direction, in accordance with rotation of asecond axis of the housing, which is different from the first axis,about an axis perpendicular to the second axis.
 31. The game systemaccording to claim 25, wherein the direction input device includes atleast a stick which is configured for inclining in a predetermineddirection of the housing thereby to receive an input, the position ofthe object is moved in a first direction in the virtual game world todetermine a new position of the object when the stick is inclined in thepredetermined direction, and the displacement amount is determined so asto displace the object in the first direction in the virtual game worldin accordance with rotation of the housing so as to be inclined in thepredetermined direction.
 32. The game system according to claim 25,wherein the direction input device includes at least a stick which isconfigured for inclining so as to rotate about a predetermined axis ofthe housing thereby to receive an input, the position of the object ismoved in a first direction in the virtual game world to determine a newposition of the object when the stick is inclined in a direction torotate about the predetermined axis, and the displacement amount isdetermined so as to displace the object in the first direction in thevirtual game world in accordance with rotation of the housing about thepredetermined axis.
 33. The game system according to claim 25, whereinthe direction input device includes at least a stick which is configuredfor inclining in a predetermined direction of the housing or a directionperpendicular to the predetermined direction thereby to receive aninput, the position of the object is moved in a first direction in thevirtual game world to determine a new position of the object when thestick is inclined in the predetermined direction, and the position ofthe object is moved in a second direction perpendicular to the firstdirection in the virtual game world to determine a new position of theobject when the stick is inclined in the perpendicular direction, andthe displacement amount is determined so as to displace the object inthe first direction in accordance with rotation of the housing so as tobe inclined in the predetermined direction, and the displacement amountis determined so as to displace the object in the second direction inaccordance with rotation of the housing so as to be inclined in theperpendicular direction.
 34. The game system according to claim 25,wherein the direction input device includes at least a stick which isconfigured for inclining in a forward, backward, leftward, or rightwarddirection of the housing thereby to receive an input for a forward,backward, leftward, or rightward direction, the position of the objectis moved in a forward, backward, leftward, or rightward direction in thevirtual game world to determine a new position of the object inaccordance with a direction input to the direction input device when thestick is inclined in the forward, backward, leftward, or rightwarddirection of the housing, and the displacement amount is determined soas to displace the object in a leftward or rightward direction of theobject in the virtual game world in accordance with inclination of thehousing in the leftward or rightward direction.
 35. A game systemcomprising a game controller operated by a player and a game apparatusin communication with the game controller, the game controller includingat least: a housing; an acceleration detector for detecting accelerationassociated with the housing; and a direction input device provided inthe housing for receiving a direction input, and the game apparatusincluding: a processor; and a memory coupled to the processor, thememory storing instructions that, when executed by the processor,control the game apparatus to generate images of a virtual game world,each of one or more of the images being generated by at least:receiving, from the game controller, a transmission of operation dataincluding both direction input data corresponding to a direction inputreceived by the direction input device of the game controller andacceleration data corresponding to acceleration detected by theacceleration detector of the game controller; determining a position ofan object, which appears in the virtual game world, in accordance withthe direction input data from the received transmission of operationdata; determining a displacement amount of the object in the virtualgame world in accordance with the acceleration data from the samereceived transmission of operation data; and moving the object bychanging the determined position of the object by the determineddisplacement amount; and generating, for display, an image of thevirtual game world after the moving of the object.
 36. The game systemaccording to claim 35, wherein the displacement amount is determined soas to displace the object in a forward or backward direction of theobject in the virtual game world in accordance with accelerationgenerated in a forward or backward direction of the housing.
 37. Thegame system according to claim 35, wherein the displacement amount isdetermined so as to displace the object in a first direction in thevirtual game world in accordance with acceleration generated in a firstdirection of the housing, and the displacement amount is determined soas to displace the object in a second direction in the virtual gameworld, which is different from the first direction in the virtual gameworld, in accordance with acceleration generated in a second directionof the housing which is different from the first direction of thehousing.
 38. The game system according to claim 35, wherein thedirection input device includes at least a stick which is configured forinclining in a predetermined direction of the housing thereby to receivean input, the position of the object is moved in a first direction inthe virtual game world to determine a new position of the object whenthe stick is inclined in the predetermined direction, and thedisplacement amount is determined so as to displace the object in thefirst direction in the virtual game world in accordance withacceleration generated in the predetermined direction of the housing.39. The game system according to claim 35, wherein the direction inputdevice includes at least a stick which is configured for inclining in apredetermined direction of the housing or a direction perpendicular tothe predetermined direction thereby to receive an input, the position ofthe object is moved in a first direction in the virtual game world todetermine a new position of the object when the stick is inclined in thepredetermined direction, and the position of the object is moved in asecond direction perpendicular to the first direction when the stick isinclined in the perpendicular direction, and the displacement amount isdetermined so as to displace the object in the first direction in thevirtual game world in accordance with acceleration generated in thepredetermined direction of the housing, and the displacement amount isdetermined so as to displace the object in the second direction in thevirtual game world in accordance with acceleration generated in theperpendicular direction of the housing.
 40. The game system according toclaim 35, wherein the direction input device includes at least a stickwhich is configured for inclining in a forward, backward, leftward, orrightward direction of the housing thereby to receive an input for aforward, backward, leftward, or rightward direction, the position of theobject is moved in a forward, backward, leftward, or rightward directionin the virtual game world to determine a new position of the object inaccordance with a direction input to the direction input device when thestick is inclined in the forward, backward, leftward, or rightwarddirection of the housing, and the displacement amount is determined soas to displace the object in a leftward or rightward direction of theobject in the virtual game world in accordance with accelerationgenerated in a leftward or rightward direction of the housing.
 41. Thegame system according to claim 25, wherein a new position of the objectis determined with a forward direction of the object in the virtual gameworld as a reference in accordance with a direction input to thedirection input device, and the executed instructions further controlthe game apparatus to set a direction in the virtual game world, inwhich the position of the object is moved, as a new forward direction ofthe object, and change a direction of the object in the virtual gameworld based on the new forward direction.
 42. The game system accordingto claim 6, wherein the first axis and the second axis are perpendicularto each other, and the first direction and the second direction areperpendicular to each other in the virtual game world.
 43. The gamesystem according to claim 17, wherein the first axis and the second axisof the housing are perpendicular to each other, and the first directionand the second direction are perpendicular to each other in the virtualgame world.
 44. The game system according to claim 1, wherein thehousing is formed in such a shape and size that the housing isconfigured to be held in at least one hand of the player.
 45. The gamesystem according to claim 44, wherein the direction input device isprovided so that, when the player holds the housing, the direction inputdevice is operable with a thumb of the one hand.
 46. A non-transitorycomputer-readable storage medium storing a game program which isexecuted by a computer of a game apparatus in a game system comprising:a game controller which includes a housing and a direction input deviceprovided in the housing for receiving a direction input; the gameapparatus in communication with the game controller; and an orientationdetector for detecting aspects of orientation of the housing, the gameprogram causing the computer to control the game apparatus to generateimages of a virtual game world, one or more of the images beinggenerated by at least: receiving, from the game controller, atransmission of operation data including both direction input datacorresponding to a direction input received by the direction inputdevice of the game controller and orientation data corresponding toaspects of orientation of the game controller detected by theorientation detector; determining a movement vector of an object, whichappears in the virtual game world, in accordance with the directioninput device data from the received transmission of operation data;combining the determined movement vector with a correction vectordetermined based on the orientation data from the same receivedtransmission of operation data, to produce a corrected movement vector;moving the object in the virtual game world based on the correctedmovement vector; and generating, for display, an image of the virtualgame world after the moving of the object.
 47. A non-transitorycomputer-readable storage medium storing a game program which isexecuted by a computer of a game apparatus connected to a gamecontroller which includes: a housing ; a direction input device providedso that, when the player holds the housing with one hand, the directioninput device is operable with a thumb of the one hand for receiving aninput in a forward, backward, leftward, or rightward direction of thehousing; and a movement detector for detecting movement of the housing,the game program causing the computer to control the game apparatus togenerate images of a virtual game world, one or more of the images beinggenerated by at least: receiving, from the game controller, atransmission of operation data including both direction input datacorresponding to a direction input supplied to the direction inputdevice of the game controller and movement data corresponding tomovement of the game controller detected by the movement detector;determining, in accordance with the direction input data from thereceived transmission of operation data, a forward direction of anobject, which appears in the virtual game world, as a direction of amovement vector of the object when the direction input data correspondsto input to the direction input device in the forward direction of thehousing, determining a backward direction of the object in the virtualgame world as the direction of the movement vector when the directioninput data corresponds to input to the direction input device in thebackward direction of the housing, and determining a leftward orrightward direction of the object in the virtual game world as thedirection of the movement vector when the direction input datacorresponds to input to the direction input device in the leftward orrightward direction of the housing; combining the movement vector with acorrection vector based on the movement detector data from the samereceived transmission of operation data resulting from rotation of thehousing in the forward direction of the housing, to produce a correctedmovement vector fo r increasing a movement amount of the object in theforward direction in the virtual game world; moving the object in thevirtual game world based on the corrected movement vector; andgenerating, for display, an image of the virtual game world after themoving of the object.
 48. A non-transitory computer-readable storagemedium storing a game program which is executed by a computer of a gameapparatus connected to a game controller which includes: a housing; anacceleration detector for detecting acceleration associated with thehousing; and a direction input device provided in the housing forreceiving a direction input, the game program causing the computer tocontrol the game apparatus to generate images of a virtual game world,one or more of the images being generated by at least: receiving, fromthe game controller, a transmission of operation data including bothdirection input data corresponding to a direction input received by thedirection input device of the game controller and acceleration datacorresponding to acceleration detected by the acceleration detector;determining a movement vector of an object, which appears in the virtualgame world, in accordance with the direction input data from thereceived transmission of operation data; combining the determinedmovement vector with a correction vector determined based on theacceleration data from the same received transmission of operation data,to produce a corrected movement vector; and moving the object in thevirtual game world based on the corrected movement vector; andgenerating, for display, an image of the virtual game world after themoving of the object.
 49. A non-transitory computer-readable storagemedium storing a game program which is executed by a computer of a gameapparatus connected to a game controller which includes: a housing; adirection input device provided in such a position that when the playerholds the housing with one hand, the direction input device is operablewith a thumb of the one hand for receiving an input in a forward,backward, leftward, or rightward direction of the housing; and anacceleration detector for detecting acceleration generated at least inthe forward direction of the housing, the game program causing thecomputer to control the game apparatus to generates images of a virtualgame world, one or more of the images being generated by at least:receiving, from the game controller, a transmission of operation dataincluding both direction input data corresponding to a direction inputreceived by the direction input device of the game controller andacceleration data corresponding to acceleration detected by theacceleration detector; determining, in accordance with the directioninput data from the received transmission of operation data, a forwarddirection of an object, which appears in the virtual game world, as adirection of a movement vector of the object when the direction inputdata corresponds to input to the direction input device in the forwarddirection of the housing, determining a backward direction of the objectin the virtual game world as the direction of the movement vector whenthe direction input data corresponds to input to the direction inputdevice in the backward direction of the housing is received by thedirection input device, and determining a leftward or rightwarddirection of the object in the virtual game world as the direction ofthe movement vector when the direction input data corresponds to inputto the direction input device in the leftward or rightward direction ofthe housing; combining the movement vector with a correction vectordetermined based on the acceleration data from the same receivedtransmission of operation data when acceleration is generated in theforward direction of the housing, to produce a corrected movement vectorfor increasing a movement amount of the object in the forward directionin the virtual game world; moving the object in the virtual game worldbased on the corrected movement vector; and generating, for display, animage of the virtual game world after the moving of the object.
 50. Anon-transitory computer-readable storage medium storing a game programwhich is executed by a computer of a game apparatus in a game systemcomprising: a game controller which includes a housing and a directioninput device provided in the housing for receiving a direction input;the game apparatus in communication with the game controller; and anorientation detector for detecting aspects of orientation of thehousing, the game program causing the computer to control the gameapparatus to generate images of a virtual game world, one or more of theimages being generated by at least: receiving, from the game controller,a transmission of operation data including both direction input datacorresponding to a direction input received by the direction inputdevice of the game controller and orientation data corresponding toaspects of orientation of the game cotnroller detected by theorientation detector; determining a movement direction of an object,which appears in the virtual game world, in accordance with thedirection input data from the received transmission of operation data;determining a movement amount of the object in accordance with theorientation data from the same received transmission of operation data;moving the object in the virtual game world based on the determinedmovement direction and the determined movement amount; and generating,for display, an image of the virtual game world after the moving of theobject.
 51. A non-transitory computer-readable storage medium storing agame program which is executed by a computer of a game apparatusconnected to a game controller which includes: a housing; anacceleration detector for detecting acceleration associated with thehousing; and a direction input device provided in the housing forreceiving a direction input, the game program causing the computer tocontrol the game apparatus to generate images of a virtual game world,one or more of the images being generated by at least: receiving, fromthe game controller, a transmission of operation data including bothdirection input data corresponding to a direction input received by thedirection input device of the game controller and acceleration datacorresponding to acceleration detected by the acceleration detector;determining a movement direction of an object, which appears in thevirtual game world, in accordance with the direction input data from thereceived transmission of operation data; determining a movement amountof the object in accordance with the acceleration data from the samereceived transmission of operation data; moving of the object in thevirtual game world based on the determined movement direction and thedetermined movement amount; and generating, for display, an image of thevirtual game world after the moving of the object.
 52. A non-transitorycomputer-readable storage medium storing a game program which isexecuted by a computer of a game apparatus in a game system comprising:a game controller which includes a housing and a direction input deviceprovided in the housing for receiving a direction input; the gameapparatus in communication with the game controller; and an orientationdetector for detecting aspects of orientation of the housing, the gameprogram causing the computer to control the game apparatus to generateimages of a virtual game world, one or more of the images beinggenerated by at least: receiving, from the game controller, atransmission of operation data including both direction input datacorresponding to a direction input received by the direction inputdevice of the game controller and orientation data corresponding toaspects of orientation of the game controller detected by theorientation detector; determining a position of an object, which appearsin the virtual game world, in accordance with the direction input datafrom the received transmission of operation data; determining adisplacement amount of the object in the virtual game world inaccordance with the orientation data from the same received transmissionof operation data; moving the object by changing the determined positionof the object by the determined displacement amount; and generating, fordisplay, an image of the virtual game world after the moving of theobject.
 53. A non-transitory computer-readable storage medium storing agame program which is executed by a computer of a game apparatusconnected to a game controller which includes: a housing; anacceleration detector for detecting acceleration associated with thehousing; and a direction input device provided in the housing forreceiving a direction input, the game program causing the computer tocontrol the game apparatus to generate images of a virtual game world,one or more of the images being generated by at least: receiving, fromthe game controller, a transmission of operation data including bothdirection input data corresponding to a direction input received by thedirection input device of the game controller and acceleration datacorresponding to acceleration detected by the acceleration detector;determining a position of an object, which appears in the virtual gameworld, in accordance with the direction input data from the receivedtransmission of operation data; determining a displacement amount of theobject in the virtual game world in accordance with the accelerationdata from the same received transmission of operation data; moving theobject by changing the determined position of the object by thedetermined displacement amount; and generating, for display, an image ofthe virtual game world after the moving of the object.
 54. A game systemfor playing a game in which a game object moves in a virtual game world,the game system comprising: an orientation sensor for sensing aspects ofan orientation of a game controller; a multi-directional input device;and a processor configured to generate images of a virtual game world,one or more of the images being generated by receiving a transmission ofoperation data including both direction input data corresponding to adirection input supplied to the multi-directional input device andorientation data corresponding to aspects of orientation sensed by theorientation sensor, moving the game object in the virtual game worldbased on direction input data and orientation data from the samereceived transmission of operation data, and generating, for display, animage of the virtual game world after the moving of the object.